我正在用 python 编写一个网络爬虫,它涉及从网站上获取头条新闻。
头条新闻之一应该读到:臀部也来了
但相反,它说:Hip 也来了
这里出了什么问题?
这是一个编码错误 - 所以如果它是一个 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'}
您需要正确解码源文本。源文本很可能是 UTF-8 格式,而不是 ASCII。
因为您没有为您的问题提供任何上下文或代码,所以无法直接给出答案。
我建议你研究一下 Python 中如何完成 unicode 和字符编码: