Python 亂碼問題解決辦法


亂碼產生的原因是Python在讀取時默認解碼方式是用操作系統編碼,如果和保存時的編碼方式不一樣,就會出現亂碼

比如以下片段,文件保存格式是utf-8

#coding=utf-8
print '' #輸出亂碼

因為windows默認的編碼方式是GBK,python文件保存時使用了utf-8,在讀取時,python使用GBK的編碼表去解utf-8編碼的字節碼,因為GBK與UTF-8編碼不兼容,自然出現了亂碼問題

解決方法:

1.直接使用 u'是' 形式,指明以unicode編碼,解碼方式會以頂部 #coding定義的編碼方式,如果不寫,以操作系統當前編碼方法,建議寫上#coding,因為要讓操作系統編碼和源文件編碼經常會不一樣。推薦使用這種方式

2.輸出時指定解碼方法  print '是'.decode("utf8") ,必須和保存的編碼一致,忽略#coding的定義

3.將#coding 和保存編碼改為和操作系統一樣的編碼,就可以直接print '是' 正常輸出,也不推薦,因為需要事先知道操作系統編碼,復制到其他電腦上,操作系統編碼不一樣就會出錯

#coding=gbk
print u'' #方法1
print ''.decode("gbk") #方法2
print '' #方法3

注意:

#coding指明的編碼必須和保存的編碼一樣,不然1,3方法都會產生錯誤,原因也是保存編碼和讀取編碼不一致。一般IDE能夠自動根據#coding保存文件


免責聲明!

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



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