我目前正在使用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'
答案 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')
中国深圳