在跑python脚本的时候有以下报错,
UnicodeEncodeError: 'ascii' codec can't encode characters in position 22-23: ordinal not in range(128)python
排查的时候发现是由于有中文字符致使的,将中文去掉脚本无异常。其实从报错也能够看出来是字符编码的问题,Unicode编码与ASCII编码的不兼容,Python默认环境编码经过下面的方法能够获取:
import sys
print sys.getdefaultencoding()ide
基本上默认都是ascii编码方式,所以Python天然调用ascii编码解码程序去处理字符,当字符不属于ascii范围内,就会抛出异常(ordinal not in range(128))。编码
解决方法:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')code
亲测有效utf-8