Python 設置 UTF8 編碼 reload(sys)

python在安裝時,默認的編碼是ascii,當程序中出現非ascii編碼時,python的處理常常會報這樣的錯UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python沒辦法處理非ascii編碼的,此時需要自己設置將python的默認編碼,一般設置爲utf8的編碼格式。

設置默認編碼時使用函數:sys.setdefaultencoding('utf8')可能會報AttributeError: 'module' object has no attribute 'setdefaultencoding'的錯誤,執行reload(sys),再執行以上命令就可以順利通過。

此時再執行sys.getdefaultencoding()就會發現編碼已經被設置爲utf8的了,但是在解釋器裏修改的編碼只能保證當次有效,在重啓解釋器後,會發現,編碼又被重置爲默認的ascii了,那麼有沒有辦法一次性修改程序或系統的默認編碼呢。

如果需要在運行時(就是整個解釋器啓動完之後)進行setdefaultencoding,就只能重新加載sys這個模塊。

解決方法(代碼頭加入如下代碼):

import sys  
reload(sys)  
sys.setdefaultencoding('utf8')


原文鏈接

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