python執行顯示編碼錯誤
阿新 • • 發佈:2018-11-03
python中執行顯示編碼錯誤一般有2種原因:
編碼與譯碼的方式不一致
在編寫Python時,當使用中文輸出或註釋時執行指令碼,會提示錯誤資訊:SyntaxError: Non-ASCII character '\xe5' in file *******
【原因】
python直譯器的預設編碼檔案是用的ASCII碼,而你的python檔案中使用了中文等非英語字元。
【解決辦法】
在Python原始檔的最開始一行,加入一句:
# coding=UTF-8(等號換為”:“也可以)
注意:等號左右兩邊沒有空格
補充:
.py檔案的編碼方式由編輯器決定,而在中文環境下,編輯器的編碼方式一般是utf-8,python直譯器在譯碼時,譯碼方式為要與原始檔的編碼方式一致。
具體可參考官方文件:https://www.python.org/dev/peps/pep-0263/
存在部分字元無法譯碼的情況
編碼與譯碼的方式是一致的,但是部分字元無法譯碼。
讀取中文txt檔案時,經常會出現: ‘gbk' codec can't decode bytes in position 31023: illegal multibyte sequence。
這種情況就是文本里含有gbk編碼方式中沒有的字元。
最好的解決辦法:
使用gb18030編碼方式,因為gb18030編碼方式包含gbk,支援的字元數更多,並且加入'ignore'忽略無法讀取的字元。
例如;
open('../hlp_stop_words.txt', encoding='gb18030', errors='ignore')