详细请看:http://blog.youkuaiyun.com/xiaokang06/article/details/8229061
在将字符串写入文件时,执行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安装目录下的lib\site-packages文件夹下新建一个sitecustomize.py,文件中的代码为:
- import sys
- sys.setdefaultencoding('utf-8')
本文讨论了在Python中遇到的UnicodeEncodeError错误,该错误发生在使用ascii编码尝试写入包含非ascii字符的字符串时。文章解释了Python默认编码可能不是utf-8,并提供了一种方法来更改默认编码,通过在sitecustomize.py文件中设置sys.setdefaultencoding('utf-8')。此操作解决了编码错误,确保了字符串能够正确地以utf-8格式写入文件。
2418

被折叠的 条评论
为什么被折叠?



