1. 程式人生 > >python中文編碼問題(decode('gbk').encode('utf-8')和decode('utf-8').encode('gbk')這對好基友)

python中文編碼問題(decode('gbk').encode('utf-8')和decode('utf-8').encode('gbk')這對好基友)

    想必每個Python新手都會遇到Python編碼的問題,特別是使用到漢字的時候。UTF-8編碼是比較通用的編碼方式,它可以輸出中文,而Python2中預設的編碼方式一般是GBK,所以往往我們期望在console下輸出漢字時都是亂碼,或者當raw_input()輸入漢字後,在後面操作中遇到問題的現象(在爬蟲程式中尤為常見)。

    而仔細觀察,程式中解析出的漢字通常是:'\xe4\xb8\xad\xe5\x9b\xbd' 這種形式的(GBK編碼),輸出後就變成亂碼了,所以應該先將其GBK解碼,然後再UTF-8編碼,然後再輸出:

decode('gbk').encode('utf-8')

這樣就能輸出漢字了。

    而在爬蟲程式中手動輸入一個漢字時通常要先對其UTF-8解碼,然後再GBK編碼:

decode('utf-8').encode('gbk')

這樣在後面的操作中才能避免出錯。