python語言預設編碼 Python系統預設編碼

2021-10-11 16:47:12 字數 1193 閱讀 8851

安裝idle (python gui)時,預設的編碼是ascii,當程式**現非ascii編碼時,python的處理常常會報這樣的錯unicodedecodeerror: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python沒辦法處理非ascii編碼的,此時需要自己設定將python的預設編碼,一般設定為utf8的編碼格式。

查詢系統預設編碼可以在直譯器中輸入以下命令

sys.getdefaultencoding()

設定預設編碼時:

sys.setdefaultencoding('utf8')

可能會報attributeerror: 'module' object has no attribute 'setdefaultencoding'的錯誤,執行reload(sys),在執行以上命令就可以順利通過。

此時在執行sys.getdefaultencoding()就會發現編碼已經被設定為utf8的了,但是在直譯器裡修改的編碼只能保證當次有效,在重啟直譯器後,會發現,編碼又被重置為預設的ascii了,那麼有沒有辦法一次性修改程式或系統的預設編碼呢。

1.(建議)python的lib\site-packages資料夾下新建乙個sitecustomize.py。內容為:

此時重啟python直譯器,執行sys.getdefaultencoding(),發現編碼已經被設定為utf8的了,多次重啟之後,效果相同,這是因為系統在python啟動的時候,自行呼叫該檔案,設定系統的預設編碼,而不需要每次都手動的加上解決**,屬於一勞永逸的解決方法。

2.在程式中加入以下**:

import sys

reload(sys)

sys.setdefaultencoding('utf8')

另外有一種解決方案是在程式中所有涉及到編碼的地方,強制編碼為utf8,即新增**encode("utf8"),這種方法並不推薦使用,因為一旦少寫乙個地方,將會導致大量的錯誤報告,我曾經遇到這種情況,錯誤日誌壓縮之後尚有70多k,全都是這乙個問題,讓人有很崩潰的感覺

python編譯器,有多種,本人目前常用eclipse+pyde,效果還好,編碼問題不大,用codecs及decode、encode可以解決大部分。另外要注意,在字串前面加u或者r,轉為unicode編碼或者轉義,缺少u或者r,不清楚編碼真的很頭疼。

python 的詳細介紹:請點這裡

Python設定預設語言編碼

當python中間處理非ascii編碼時,經常會出現如下錯誤 unicodedecodeerror ascii codec can t decode byte 0x?in position 1 ordinal not in range 128 0x?是超出128的數字,python在預設的情況下認為...

mac終端輸入python預設開啟python3

1.終端開啟 bash profile檔案 open bash profile 2.新增以下內容到.bash profile檔案 setting path for python 3.5 path library frameworks python.framework versions 3.5 bin...

python預設編碼問題

自己寫了個python指令碼,在上面加上中文注釋,結果總是執行出錯,提示 syntaxerror non ascii character xe5 in file 把中文注釋去掉就沒有錯。用gcc或 編譯 檔案時,無論有沒有中文都不會出現類現問題。感覺這應該是python預設編碼的事。搜尋了一下,果然...