Python各种奇怪的编码问题

在前公司被强行按头用Python 2处理小语种,就经常碰到类似的错误

UnicodeEncodeError: 'ascii' codec can't encode characters in position xx

在代码前加下列语句即可

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

但是这并不是一个好的方案,参考这篇文章

后来终于换了工作不用被强行使用Python 2,终于换了Python 3,他娘的又出了新的花头(没想到吧.jpg)。本来Python 3应该对编码问题兼容得更好了,默认也是utf-8了,用上面的语句也会报错。解决方法是读写的时候都指定encoding为utf-8即可,代码如下:

f_read = open(filename, 'r', encoding='utf-8')
f_write  = open(filename2, 'w', encoding="utf-8")

你可能感兴趣的:(Python各种奇怪的编码问题)