我的RSS提要ontains被转换为®在Python我正在检查输出或日志文件,然后我看到如下标题:®同时解析XML
HBO赢得19个艾美奖,这是今年任何网络中的大多数。
®被转换为®。任何我尝试使用HTML解析器,但没有用。
我的RSS提要ontains被转换为®在Python我正在检查输出或日志文件,然后我看到如下标题:®同时解析XML
HBO赢得19个艾美奖,这是今年任何网络中的大多数。
®被转换为®。任何我尝试使用HTML解析器,但没有用。
我尝试了以下工作和:
title = item.find('title').text
title = title.encode('iso-8859-1')
当我得到转换为UTF-8字符串(®到®),我将其转换回ISO-8859-1(®到®)并获取正确的输出
你的应用程序中现在有两个* bug。一个是你原来的问题的原因。另一个是这个“修复”。 – wberry
您已收到一些使用UTF-8编码的文本,但在某些时候,这些字节被错误地解释为ISO-8859-1或其他编码。
没有更多的上下文,很难准确地确定错误发生的位置。您应该首先检查用于读取日志文件的编码。
用于读取日志的编码是'UTF-8'。任何建议,以获得这个工作! – Simsons
您声明提要的编码是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
命令或Windows中的debug.exe
命令中的d
命令。在这种情况下不要相信记事本。它在于。
定义什么®的含义。 Feed的编码是什么?你打印什么编码?你为什么不使用神奇的http://www.feedparser.org/?还要注意,即使对象是一个合适的“unicode”实例,在你的Log()调用中,你也会将标题转换为一个'str'。 – patrys
@patrys,feed,encoding =“iso-8859-1”。 feedparser.org是外部库吗?在这种情况下,我不能使用它。你能否澄清一下“你打印到哪种编码?” – Simsons
看来你得到了一个正确的“®”字符的utf-8表示,但是将它打印到'latin1'('iso-8859-1')输出。我怀疑问题不在于你解码提要的方式,而是以你对结果进行Log()或查看记录结果的方式。 – patrys