Python2.7 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(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')
中国深圳
我目前正在使用 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')
中国深圳