將python2中漢字會出現亂碼的事一次性說清楚

一、寫的代碼模塊須要指定編碼
   若是代碼沒有指定coding,python就默認全部的字符爲ASCII碼,
   ASCII碼只支持256個字符,ASCII碼不支持中文,因此就報錯。
   因此要在代碼前寫上#coding:utf-8或#coding:gbk
   但通用寫上#coding:utf-8

二、python2內部全部編碼統一爲unicode
  unicode能夠處理世界上全部語言的字符。
  utf-8爲unicode的一種實現形式,因此須要在代碼前寫上#coding:utf-8

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

四、網頁採集時
  代碼指定#coding:utf-8
  若是網頁的編碼爲gbk
  須要這樣處理:
  html = html.decode('gbk').encode('utf-8')

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

六、字典等key或值的漢字問題
#coding:utf-8
dict1 ={1:'python週末培訓班',2:'諮詢010-68165761 QQ:1465376564'}

print dict1
# 這樣輸出的沒有顯示漢字,是顯示漢字的其它編碼

dict2 ={1:'python視頻培訓班',2:'諮詢010-68165761 QQ:1465376564'}
for key in dict2:
    print dict2[key]

七、unicode的漢字編碼寫到文本文件中
  須要根據文本文件的編碼進行轉換
  能夠encode('utf-8')或encode('gbk')

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

相關文章
相關標籤/搜索