在将字符串写入文件时,执行f.write(str),后台总是报错:UnicodeEncodeError: 'ascii' codec can't encode character u'\u6211' in position 0: ordinal not in range(128),即ascii码无法被转换成unicode码。刚开始我以为python默认的编码是utf-8,所以使用decode方法和encode方法来进行编码转换,后来怎么也不成功,于是怀疑是否默认编码不是utf-8。使用下面语句获取python当前的默认编码:
import sys
print sys.getdefaultencoding()
这是输出的结果是ascii。所以我安装的python默认编码是ascii。那么下一步,如何来改变python的默认编码呢?如下有两种方式:
方式一:在python代码中进行改变,代码如下:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
方式二:python安装目录下的lib\site-packages文件夹下新建一个sitecustomize.py,文件中的代码为:
import sys
sys.setdefaultencoding('utf-8')
这样处理完后,之前的报错就被解决了!