我得到了一个位置u'\u0107\x9d\xad\u013a\u02c7\x9e\u013a\xb8\x82',,实际上应该是'\xe6\x9d\xad\xe5\xb7\x9e\xe5\xb8\x82‘。我怎么能解码这样的东西呢?
发布于 2017-02-11 16:15:10
我建议你读一下python 2.7 unicode。
\u0107\x9d\xad\u013a\u02c7\x9e\u013a\xb8\x82不等于\xe6\x9d\xad\xe5\xb7\x9e\xe5\xb8\x82,所以我认为你的爬虫代码有问题。
在python2.x中,你应该小心编码problem.In Python2,我们有两种文本类型: str,它被限制为ASCII +一些7位范围以上的未定义数据,unicode,它相当于Python3的str类型和一个字节类型bytearray,它从Python3继承而来。
通过允许强制字节串和非字节字符串,Python2提供了从非Unicode到Unicode的迁移路径。你可以查看More About Unicode in Python 2 and 3。
你也可以在你的脚本开头添加这个,它将系统默认编码设置为utf-8。这对测试程序很有用,它会解决你的问题。
import sys
reload(sys)
sys.setdefaultencoding('utf-8')事实上,我不建议程序员在大型program.It中使用它可能会引发其他问题。
Python2.x中的编码问题确实不被鼓励,如果你想避免编码问题,你应该开始认真考虑切换到Python3。
希望这能有所帮助。
https://stackoverflow.com/questions/42173681
复制相似问题