®在解析XML时会在Python中转换为®

时间:2011-09-27 09:32:43

标签: python xml rss non-ascii-characters

我的RSS Feed ontains:

<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解析器,但没有用。

3 个答案:

答案 0 :(得分:1)

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

在这种情况下,如果您说的字节应该被解释为®实际上是C2 AE,那么真的,真正的文字是Emmy® Awards ,一切都在按预期工作。如果发件人想要不同的文本,他们会发送不同的数据或以不同的方式设置编码。

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

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

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

答案 1 :(得分:0)

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

如果没有更多背景信息,很难确切地知道错误发生在哪里。您应该首先检查用于读取日志文件的编码。

答案 2 :(得分:0)