在跑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