简而言之,我的情况是:
当然,内容不是纯ascii格式的,而是utf-8格式的,所以我得到了像“äå”这样的字符。但是当我打印文本时,它会被诸如“\xe4”之类的ecapes弄乱了。和编码有关,但我就是不明白。这应该是如此的微不足道,但谷歌傅是让我失望。在
一个例子是当我逐字逐句地浏览内容并试图找到“掼”这个字符时,我确实:
if u"ö" in word:
这只是给出:UnicodeDecodeError:'ascii'编解码器无法解码第6位的字节0xc3。。。在
编辑:
所以我想我发现了我的问题。我在拿饲料然后做str(条目.内容)继续往前走,但是条目.内容是一个包含一个以unicode字符串作为值的字典的列表,所以我所做的(我猜)只是得到字典内容的ascii表示。。。在
您正在尝试将编码文本与unicode进行比较。Python不知道编码的文本是UTF-8,所以它猜测它是ASCII,并尝试将其解码为unicode。解决方案是用正确的编码显式地解码它。在
查看Python Unicode HOWTO了解更多信息。在
我可以用这个文件重现您的问题:
然后用这个文件修复它:
^{pr2}$如果您知道您的文本是UTF-8,那么可以在开始使用它们之前将其解码为
unicode
对象。一旦从文件中读取字节,就可以使用字符串的decode()
方法作为word.decode('UTF8')
对它们进行解码,以返回unicode对象。在尝试使用feedparser包http://packages.python.org/feedparser/ 它能很好地处理编码并支持几乎所有的feed格式。你只会得到结构良好的数据。在
相关问题 更多 >
编程相关推荐