在Python中解码UTF-8字符串

时间:2012-10-28 16:22:22

标签: python python-2.7

我正在使用python编写一个网络爬虫,它涉及从网站上获取头条新闻。

其中一个标题应该是:而且嘻哈也要来了

但相反它说:而且Hip也来了

这里出了什么问题?

2 个答案:

答案 0 :(得分:22)

这是一个编码错误 - 所以如果它是一个unicode字符串,这应该解决它:

text.encode("windows-1252").decode("utf-8")

如果是普通字符串,则需要额外的步骤:

text.decode("utf-8").encode("windows-1252").decode("utf-8")

这两个都会给你一个unicode字符串。

顺便说一句 - 要发现由于编码问题导致这样的文字被破坏的情况,您可以使用chardet

>>> import chardet
>>> chardet.detect(u"And the Hip’s coming, too")
{'confidence': 0.5, 'encoding': 'windows-1252'}

答案 1 :(得分:10)

您需要正确解码源文本。很可能源文本是UTF-8格式,而不是ASCII格式。

由于您没有为您的问题提供任何上下文或代码,因此无法给出直接答案。

我建议你研究如何在Python中完成unicode和字符编码:

http://docs.python.org/2/howto/unicode.html