繁体   English   中英

Python2.7 UnicodeEncodeError:'ascii'编解码器不能编码0-11位的字符:序号不在范围内(128)

[英]Python2.7 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)

我目前正在使用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'

您的字符串已经编码,因此它应该是一个字节对象而不是一个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')

中国深圳

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM