Python2.7 UnicodeEncodeError:' ascii'编解码器无法对位置0-11中的字符进行编码:序数不在范围内(128)

时间:2016-11-14 21:40:37

标签: python python-2.7 unicode encoding mojibake

我目前正在使用python 2.7并在中文网站上进行网页抓取。

如何将下面的unicode转换为字符串?

简单的str()函数不起作用和状态 UnicodeEncodeError:' ascii'编解码器不能编码位置0-11中的字符:序数不在范围内(128)

提前致谢,

    u'\n\xe4\xb8\xad\xe5\x9b\xbd\xe6\xb7\xb1\xe5\x9c\xb3\n'

1 个答案:

答案 0 :(得分:2)

您的字符串已经编码,因此它应该是字节对象而不是unicode对象。尝试并解决该问题。即,您的抓取数据的repr应如下所示:

'\n\xe4\xb8\xad\xe5\x9b\xbd\xe6\xb7\xb1\xe5\x9c\xb3\n'

不喜欢这样:

u'\n\xe4\xb8\xad\xe5\x9b\xbd\xe6\xb7\xb1\xe5\x9c\xb3\n'

要从unicode对象恢复中文文本,您可以跳转到字节并返回:

>>> text = u'\n\xe4\xb8\xad\xe5\x9b\xbd\xe6\xb7\xb1\xe5\x9c\xb3\n'
>>> print text.encode('latin-1').decode('utf-8')

中国深圳