我目前正在使用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 应该如下所示:
repr
'\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') 中国深圳
1 回答
您的字符串已经编码,因此它应该是一个字节对象而不是一个unicode对象 . 尝试并解决该问题 . 即,您的抓取数据的
repr
应该如下所示:不是这样的:
要从unicode对象恢复中文文本,您可以跳转到字节并返回: