論野生技術&二次元

python蛋疼的中文亂碼解決方案

我就想不通為什麼windows的字符終端用的是cp936而不是utf-8。不過要是他用的是utf-8,那我也沒什麼博文好寫了==於是本菜鳥總結了一下,和廣大python菜鳥分享。

當然如果你全部只用英文或數字,那我又沒什麼博文好寫了wwww

當你的腳本在字符終端出現亂碼或錯誤時,按以下辦法自檢:

  1. 打印的字符是中文字,但是都是沒學過o(╯□╰)o:使用了utf-8編碼(encode),字符終端代碼頁是gbk
  2. 打印出的都是“�åȡ��”:你使用了gbk或其他的編碼,而終端使用的是utf-8

一般來說:

  1. 網頁使用utf-8編碼較多(聽說以前百度是用的gb2312?),做爬蟲並要打印在屏幕上時,要對原始數據做utf-8解碼(decode)處理
  2. windows下的大部分文本文件是ANSI編碼,讀取文件並打屏幕上時做cp936解碼

我一般是這麼解決的:

這樣之後,在代碼中如果出現

之類的語句時,需要在字符串後面加上.decode(‘utf-8’)變成

因為你的代碼是utf-8編碼的

寫完了~真開森~

參考資料:

http://hi.baidu.com/mdj_hu/item/4d7d0803d38e62e1fe240de4

http://www.jb51.net/article/26543.htm(不推薦,看完暈過去)

退出移動版