我目前正在使用Python 2.7来爬取一个中文网站。
如何将下面的Unicode转换为字符串?
简单的str()函数无法工作并显示出以下错误信息:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)
先行谢过!
u'\n\xe4\xb8\xad\xe5\x9b\xbd\xe6\xb7\xb1\xe5\x9c\xb3\n'
我目前正在使用Python 2.7来爬取一个中文网站。
如何将下面的Unicode转换为字符串?
简单的str()函数无法工作并显示出以下错误信息:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(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')
中国深圳