美文网首页
Python 乱码问题总结

Python 乱码问题总结

作者: zyhthinking | 来源:发表于2017-11-29 15:05 被阅读0次

1.UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误

在将中文字符通过write写入txt时出现错误

Traceback (most recent call last):
  File "E:/Python/Code/datamining.py", line 26, in <module>
    f.write(soup.body.div.find('div',class_='name').contents[0])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

Unicode编码与ASCII编码的不兼容
Python默认环境编码通过下面的方法可以获取:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

基本上是ascii编码方式,由此Python自然调用ascii编码解码程序去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinal not in range(128))。
注意需要调用一次reload(sys)
否则Python会抛出一个AttributeError异常:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'setdefaultencoding'

好了,通过上面短短的三行,我们算是很好的解决了这个问题了,同样的方式也可以应用到UnicodeDecodeError上。

相关文章

网友评论

      本文标题:Python 乱码问题总结

      本文链接:https://www.haomeiwen.com/subject/bmnubxtx.html