python編碼的簡(jiǎn)說(shuō)

python2.7.x    以Unicode表示的str用u'...'表示---(沒(méi)有u,中文是亂碼)
python3.x.x    默認(rèn)以Unicode表示str (可以加u)
Unicode表示的str轉(zhuǎn)化成utf-8格式 
python2.7.x     u'ABC'.encode('utf-8')
python3.x.x     'ABC'.encode('utf-8')
英文字符轉(zhuǎn)換后表示的UTF-8的值和Unicode值相等(但占用的存儲(chǔ)空間不同)
而中文字符轉(zhuǎn)換后1個(gè)Unicode字符將變?yōu)?個(gè)UTF-8字符
把UTF-8編碼表示的字符串'xxx'轉(zhuǎn)換為Unicode字符串      'xxx'.decode('utf-8')
腳本中
#!/usr/bin/env python
# -*- coding: utf-8 -*-
并且中文字符串必須是Unicode格式

字符與字節(jié)的轉(zhuǎn)換

1.由于Python的字符串類(lèi)型是str橄登,在內(nèi)存中以Unicode表示,一個(gè)字符對(duì)應(yīng)若干個(gè)字節(jié)奖年。
2.如果要在網(wǎng)絡(luò)上傳輸羹蚣,或者保存到磁盤(pán)上摄职,就需要把str變?yōu)橐宰止?jié)為單位的bytes几颜。
3.Python對(duì)bytes類(lèi)型的數(shù)據(jù)用帶b前綴的單引號(hào)或雙引號(hào)表示
例子: x=b'ABC'
要注意區(qū)分'ABC'和b'ABC'脸候,前者是str穷娱,后者雖然內(nèi)容顯示得和前者一樣,但bytes的每個(gè)字符都只占用一個(gè)字節(jié)运沦。

以Unicode表示的str通過(guò)encode()方法可以編碼為指定的bytes泵额,例如:

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('ascii')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)


純英文的str可以用ASCII編碼為bytes,內(nèi)容是一樣的携添,含有中文的str可以用UTF-8編碼為bytes嫁盲。
含有中文的str無(wú)法用ASCII編碼,因?yàn)橹形木幋a的范圍超過(guò)了ASCII編碼的范圍薪寓,Python會(huì)報(bào)錯(cuò)亡资。

在bytes中,無(wú)法顯示為ASCII字符的字節(jié)向叉,用\x##顯示锥腻。

反過(guò)來(lái),如果我們從網(wǎng)絡(luò)或磁盤(pán)上讀取了字節(jié)流母谎,那么讀到的數(shù)據(jù)就是bytes瘦黑。
要把bytes變?yōu)閟tr,就需要用decode()方法:

>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
len()函數(shù)計(jì)算的是str的字符數(shù)奇唤,如果換成bytes幸斥,len()函數(shù)就計(jì)算字節(jié)數(shù):

>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8'))---------------python3
6

特別注意:

>>>len('中文')--------------------------python3
2

>>>len(u'中文')-------------------------python2
2
>>>len('中文')-------------------------python2
6
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咬扇,隨后出現(xiàn)的幾起案子甲葬,更是在濱河造成了極大的恐慌,老刑警劉巖懈贺,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件经窖,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡梭灿,警方通過(guò)查閱死者的電腦和手機(jī)画侣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)堡妒,“玉大人配乱,你說(shuō)我怎么就攤上這事。” “怎么了搬泥?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵桑寨,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我忿檩,道長(zhǎng)西疤,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任休溶,我火速辦了婚禮代赁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘兽掰。我一直安慰自己芭碍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布孽尽。 她就那樣靜靜地躺著窖壕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杉女。 梳的紋絲不亂的頭發(fā)上瞻讽,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音熏挎,去河邊找鬼速勇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛坎拐,可吹牛的內(nèi)容都是我干的烦磁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼哼勇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼都伪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起积担,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤陨晶,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后帝璧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體先誉,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年聋溜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谆膳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叭爱。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撮躁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出买雾,到底是詐尸還是另有隱情把曼,我是刑警寧澤杨帽,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站嗤军,受9級(jí)特大地震影響注盈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜叙赚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一老客、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧震叮,春花似錦胧砰、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至击罪,卻和暖如春哲嘲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工嘉蕾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尼斧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓侦啸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親丧枪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子光涂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容