在windows下寫的python腳本,放到linux下運行,直接報
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)
原因是python2.7在安裝時,默認的編碼是ascii,當程序中出現非ascii編碼時,python的處理常常會報這樣的錯,不過在python3就不會有這樣的問題。
臨時解決方法:
代碼中加入如下三行
import sys
reload(sys)
sys.setdefaultencoding('utf8')
如果不想在每個文件中都加這三行,就在python的Lib\site-packages文件夾下新建一個sitecustomize.py
內容如下:
# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
這樣的話,系統在python啓動的時候,自行調用該文件,設置系統的默認編碼