0

我的 RSS 提要包含:

<title><![ CDATA[HBO Wins 19 Emmy® Awards, The Most of Any Network This Year]]></title>

现在我正在解析 RSS,然后将标题分配给标题,如下所示:

 for item in XML.ElementFromURL(feed).xpath('//item',namespaces=NEWS_NS):
        title = item.find('title').text
        Log("Title :"+title)

当我检查输出或日志文件时,我会看到如下标题:

HBO 赢得了 19 项艾美奖,这是今年所有网络中最多的。

® 转换为 ® 。任何我尝试使用 HTML 解析器但没有用的。

4

3 回答 3

1

您声明提要的编码是 ISO-8859-1。

在这种情况下,如果您说的字节应该被解释为®in fact C2 AE,那么文本真的,真的Emmy® Awards,并且一切都在按应有的方式工作。如果发送者想要不同的文本,他们将发送不同的数据或设置不同的编码。

如果提要的编码是 UTF-8,并且通过网络发送的字节仍然是C2 AE,那么文本将是Emmy® Awards

如果提要的编码是 ISO-8859-1,并且通过网络发送的字节是简单AE的,没有C2,那么文本将是Emmy® Awards

要确定字节是什么,请使用od -xUnix 中的命令或Windowsd中的命令。debug.exe在这种情况下不要相信记事本。它在说谎。

于 2011-09-28T15:46:04.303 回答
0

您收到了一些使用 UTF-8 编码的文本,但在某些时候这些字节被错误地解释为 ISO-8859-1 或其他编码。

如果没有更多的上下文,很难准确地判断错误发生在哪里。您应该首先检查用于读取日志文件的编码。

于 2011-09-27T09:39:47.313 回答
0

我尝试了以下方法并工作:

title = item.find('title').text
title = title.encode('iso-8859-1')

当我将字符串转换为 UTF-8(® to ® ) 并将其转换回 iso-8859-1(® to ® ) 并获得正确的输出

于 2011-09-27T10:39:02.223 回答