1. 本文不談復(fù)雜的理論,就經(jīng)驗教你字符處理八字真言:確定編碼,同類交互。 2. 文章針對Python 2.7,主要因為3對的編碼已經(jīng)有了很大的改善并且實際原理一樣,更改一下操作命令即可。 3. 了解完本文,你可以輕松解決文字處理,特殊平臺(Windows?)下的編碼,爬蟲編碼等問題。 閱讀建議 本文分為如下幾個部分:
如果想要了解我給出的使用習(xí)慣,可以直接跳到建議的使用習(xí)慣。
如果只想要解決相關(guān)問題可以直接跳到疑難問題解答。
希望本文能夠幫到你。
1. 原理 為了理解方便,這里不談理論只做類比,具體想要進一步了解各種編碼的理論的百度一下好了。
1. 首先說一下我們?yōu)槭裁磿龅礁魇礁鳂拥木幋a問題:
- 因為我們沒有統(tǒng)一編碼
- 因為我們沒有用對命令(傳對數(shù)據(jù))
2. 再說一下編碼是什么,Python的編碼看似復(fù)雜,實際上可以看做只有兩類編碼:Unicode,二進制
- Unicode 相信都很熟悉:,就是\u0000這樣的
- 二進制編碼也很簡單,就是\x00\x00這樣的,平??吹降膗tf-8,cp936都是二進制編碼
- 二進制編碼是具象的,10001100原樣就可以存儲,而Unicode是抽象的,不能這樣存
#coding=utf8 # Unicode編碼演示print('Unicode:')
print(repr('Unicode編碼'))`
# 二進制編碼演示print(u'二進制編碼:')
print(repr('Unicode編碼'))`
# 這里只是看個樣子,代碼不必去深究 3. 再說怎么做,就是只有同種編碼之間才可以操作
就把一串?dāng)?shù)據(jù)比為烤鴨,我們作為人和鴨子不同種看待烤鴨的態(tài)度完全不一樣。
我們看到的是晚上的配菜,鴨子看到的是自己二舅。
如果我用鴨子的眼光逛烤鴨店的時候就會出問題。
因為我在烤鴨店看到了都是自己的二舅。
- 這里說的同種就是我們熟悉的各種編碼方式:utf-8,unicode,ucs-bom
- 這也就是編碼問題的核心,非常重要。
4. 最后說一下Python的環(huán)境
- 本身代碼是用Ascii解碼的,文件里有Ascii無法解碼的內(nèi)容的話要告知Python怎么解碼
- 內(nèi)部大量命令都是默認(rèn)接受Unicode
# 告知的命令就是下面這一行,刪掉就會報錯#coding=utf8print(u'測試編碼')
本文版權(quán)歸黑馬程序員Python培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員Python培訓(xùn)學(xué)院
首發(fā):http://3rdspacecomics.com/news/python.html