標籤:

將Python2中漢字出現編碼的事一次性說清楚。

好幾年前寫的,有不完善的對方,本人再修改。

為了讓初學者,不再為python2中漢字出現編碼的事煩惱!

請看python培訓黃哥細細道來:

1、寫的代碼模塊需要指定編碼

如果代碼沒有指定coding,python就默認所有的字元為ASCII碼,nASCII碼只支持256個字元,ASCII碼不支持中文,所以就報錯。n所以要在代碼前寫上#coding:utf-8或#coding:gbkn但通用寫上#coding:utf-8n

2、python2內部所有編碼統一為unicode

unicode可以處理世界上所有語言的字元。nutf-8為unicode的一種實現形式,所以需要在代碼前寫上#coding:utf-8n

3、編碼轉換

牢記python2內部編碼為unicode.n其它的編碼decode()為unicode,再編碼encode()為你指定的編碼,就不會出現亂碼。n

4、網頁採集時

代碼指定#coding:utf-8n如果網頁的編碼為gbkn需要這樣處理:nhtml = html.decode(gbk).encode(utf-8)n

5、代碼前也可以寫#coding:gbk,但也要保證你的代碼文件的保存格式為gbk.這個在windos下會出現這樣的問題。

6、字典等key或值的漢字問題

#coding:utf-8ndict1 ={1:python周末培訓班,2:諮詢QQ:1465376564}nnprint dict1n# 這樣輸出的沒有顯示漢字,是顯示漢字的其它編碼nndict2 ={1:python視頻培訓班,2:諮詢QQ:1465376564}nfor key in dict2:nprint dict2[key]n

7、unicode的漢字編碼寫到文本文件中

需要根據文本文件的編碼進行轉換n可以encode(utf-8)或encode(gbk)n

總結:凡是報錯信息中出現的錯誤包含「ASCII」,就是漢字編碼的問題。


推薦閱讀:

為什麼說浮點數缺乏精確性? python中浮點數運算問題
python anaconda 怎麼安裝?
10分鐘python圖表繪製 | seaborn入門(四):回歸模型lmplot
怎樣才能寫出 Pythonic 的代碼?

TAG:Python |