python3輸出中文報錯的原因,及解決辦法(基於pycharm)


通常python3里面如果有中文,在不連接其他設備和程序的情況下,報錯信息大致如下:

SyntaxError: Non-UTF-8 code starting with '\xd6' in file

這里面的\xd6可以是其他編碼,代表的是你程序里第一個中文的前兩位編碼

原因:你的程序里變量的編碼方式和解釋器解析的編碼方式不一致,而從解釋器的報錯信息可以看出,解釋器的編碼是utf-8

 

解決方法:使程序里變量的編碼方式和解釋器解析的編碼方式保持一致

 

那么問題來了,兩個編碼方式為什么不一樣呢,網上非常流行的解釋:有中文就要加#coding:gbk,因為中文需要gbk來編碼;這個解釋是錯的,因為utf-8也可以對中文編碼所以問題在於我們程序里的變量編碼方式不是utf-8

我們pycharm中變量的編碼方式設定路徑:file-settings-editor-file encodings-project encoding(默認被選成了GBK,原因我也不知道)

解決方法一:如果我們把項目的編碼方式設定為utf-8,那么變量的編碼方式就是utf-8 ,python的默認編碼方式也是utf-8,那就可以正常輸出中文什么其他代碼都不用加

 

s="中文"
print(s)

 

輸出

中文

 

解決方法二:在代碼上方加一行#coding:gbk;這就是在告訴編譯器,我變量的編碼方式是GBK,你要用GBK來解碼,同樣也可以解決問題

 

#coding:gbk
s="中文"
print(s)

 

輸出

中文

問題解決了,但是要注意:如果用第一種方式解決問題,那你的py文件是utf-8編碼,如果用第二種方式解決問題,那么你的py文件是gbk編碼

這個在寫文件的時候,不會對寫入值有影響,寫入值受f=open(path,mode,encoding)里面的encoding控制,要尤其注意

 

注:python2的報錯與python3有些區別,python2默認的編解碼方式是ASCII,所以如果有中文就要在文件頭加上#coding:utf-8

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM