logo头像
Snippet 博客主题

Python2.7的UnicodeEncodeError

本文于941天之前发表,文中内容可能已经过时。

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

​ 这个错误是编码问题,Unicode编码与ASCII编码的不兼容,现在Python脚本文件是由utf-8编码的,但是 Python2的默认是ASCII的,Python默认环境编码通过下面的方法可以获取:

1
2
3
import sys
print sys.getdefaultencoding()
# 'ascii'

​ 基本上是ascii编码方式,由此Python自然调用ascii编码解码程序去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinal not in range(128))。

​ 解决的方案很简单,修改默认的编码模式。

1
2
3
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

​ 还有一种更好的方法,在输出的时候,对文件制定特定的UTF-8编码即可。

​ 就是在打开一个文件的时候,不是用open而是用codecs

1
2
3
fp = codecs.open(‘output.txt’, ‘a+’, ‘utf-8’)
fp.write(row[1])
fp.close()

评论系统未开启,无法评论!