字符串和編碼的學(xué)習(xí)

主要的編碼有三種:ASCII趴生、Unicode、utf-8

ASCII僅包含大小寫的英文字母和部分標(biāo)點符號
Unicode包含當(dāng)前主要的語言和符號,且一直在不斷發(fā)展恨旱。Unicode通常以2字節(jié)表示一個字符媒吗,生僻字以4個字節(jié)表示一個字符仑氛。
utf-8以1個字節(jié)表示1個英文字母,3個字節(jié)表示1個中文字符闸英。

我們就可以總結(jié)一下現(xiàn)在計算機系統(tǒng)通用的字符編碼工作方式:

在計算機內(nèi)存中锯岖,統(tǒng)一使用Unicode編碼,當(dāng)需要保存到硬盤或者需要傳輸?shù)臅r候甫何,就轉(zhuǎn)換為UTF-8編碼出吹。
用記事本編輯的時候,從文件讀取的UTF-8字符被轉(zhuǎn)換為Unicode字符到內(nèi)存里辙喂,編輯完成后趋箩,保存的時候再把Unicode轉(zhuǎn)換為UTF-8保存到文件。
瀏覽網(wǎng)頁的時候加派,服務(wù)器會把動態(tài)生成的Unicode內(nèi)容轉(zhuǎn)換為UTF-8再傳輸?shù)綖g覽器叫确。
所以你看到很多網(wǎng)頁的源碼上會有類似<meta charset="UTF-8" />的信息,表示該網(wǎng)頁正是用的UTF-8編碼芍锦。

對于單個字符的編碼竹勉,Python提供了ord()函數(shù)獲取字符的整數(shù)表示,chr()函數(shù)把編碼轉(zhuǎn)換為對應(yīng)的字符:

>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'

由于Python的字符串類型是str娄琉,在內(nèi)存中以Unicode表示次乓,一個字符對應(yīng)若干個字節(jié)吓歇。如果要在網(wǎng)絡(luò)上傳輸,或者保存到磁盤上票腰,就需要把str變?yōu)橐宰止?jié)為單位的bytes城看。
以Unicode表示的str通過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無法用ASCII編碼缘滥,因為中文編碼的范圍超過了ASCII編碼的范圍轰胁,Python會報錯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末朝扼,一起剝皮案震驚了整個濱河市赃阀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌擎颖,老刑警劉巖榛斯,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搂捧,居然都是意外死亡肖抱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門异旧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來意述,“玉大人,你說我怎么就攤上這事吮蛹』绯纾” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵潮针,是天一觀的道長术荤。 經(jīng)常有香客問我,道長每篷,這世上最難降的妖魔是什么瓣戚? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮焦读,結(jié)果婚禮上子库,老公的妹妹穿的比我還像新娘。我一直安慰自己矗晃,他們只是感情好仑嗅,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般仓技。 火紅的嫁衣襯著肌膚如雪鸵贬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天脖捻,我揣著相機與錄音阔逼,去河邊找鬼。 笑死地沮,一個胖子當(dāng)著我的面吹牛嗜浮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播诉濒,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼周伦,長吁一口氣:“原來是場噩夢啊……” “哼夕春!你這毒婦竟也來了未荒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤及志,失蹤者是張志新(化名)和其女友劉穎片排,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體速侈,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡率寡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了倚搬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冶共。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖每界,靈堂內(nèi)的尸體忽然破棺而出捅僵,到底是詐尸還是另有隱情,我是刑警寧澤眨层,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布庙楚,位于F島的核電站,受9級特大地震影響趴樱,放射性物質(zhì)發(fā)生泄漏馒闷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一叁征、第九天 我趴在偏房一處隱蔽的房頂上張望纳账。 院中可真熱鬧,春花似錦捺疼、人聲如沸塞祈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽议薪。三九已至尤蛮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間斯议,已是汗流浹背产捞。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哼御,地道東北人坯临。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像恋昼,于是被迫代替她去往敵國和親看靠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

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