解決UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11

在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就不會有這樣的問題。


臨時解決方法:

代碼中加入如下三行

  1. import sys  

  2. reload(sys)  

  3. sys.setdefaultencoding('utf8')  

如果不想在每個文件中都加這三行,就在python的Lib\site-packages文件夾下新建一個sitecustomize.py

內容如下:

  1. # encoding=utf8  

  2. import sys  


  3. reload(sys)  

  4. sys.setdefaultencoding('utf8')  

這樣的話,系統在python啓動的時候,自行調用該文件,設置系統的默認編碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章