首页 文章

Python2.7 UnicodeEncodeError:'ascii'编解码器无法编码0-11位的字符:序号不在范围内(128)

提问于
浏览
2

我目前正在使用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'

1 回答

  • 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')
    
    中国深圳
    

相关问题