Python2.7 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)
我目前正在使用python 2.7,并在一个中文网站上进行Web抓取。
如何将下面的Unicode转换为字符串?
simple str()函数不起作用,状态为unicodeencodeerror:"ascii"编解码器无法对位置0-11中的字符进行编码:序号不在范围内(128)
事先谢谢,
1 2 3 | u' \xe4\xb8\xad\xe5\x9b\xbd\xe6\xb7\xb1\xe5\x9c\xb3 ' |
您的字符串已被编码,因此它应该是字节对象而不是Unicode对象。试着解决这个问题。也就是说,你所搜集的数据中的
1 2 3 | ' \xe4\xb8\xad\xe5\x9b\xbd\xe6\xb7\xb1\xe5\x9c\xb3 ' |
不是这样的:
1 2 3 | u' \xe4\xb8\xad\xe5\x9b\xbd\xe6\xb7\xb1\xe5\x9c\xb3 ' |
要从Unicode对象恢复中文文本,可以跳到字节并返回:
1 2 3 4 5 6 | >>> text = u' \xe4\xb8\xad\xe5\x9b\xbd\xe6\xb7\xb1\xe5\x9c\xb3 ' >>> print text.encode('latin-1').decode('utf-8') 中国深圳 |