將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 |