Python基礎之字元的編碼

2022-01-31 09:38:51 字數 865 閱讀 2182

python廖雪峰

計算機只能處理二進位制數字(0100111),要處理文字,就必須先把文字轉為數字才能處理,這個過程就叫編碼。

由於計算機是美國人發明的,最早只有127個字元被編碼到計算機裡,包括大小寫英文本母、陣列和一些符號,這個編碼表被稱為ascii編碼,比如大寫字母a的編碼是65,小寫字母z的編碼是122。

但是用來處理中文顯然乙個位元組是不夠的,至少需要2個位元組,而且不能和ascii原有的編碼衝突。所以中國制定了gb2312編碼來將中文編進去。但是可以想象,全世界有上百中語言,各國有各國的標準,日本把日文編到shift_jis裡,南韓把韓文編到euc-kr裡。這肯定會出現衝突,結果就導致在多語言的混合的文字中顯示出來會有亂碼。

因此,unicode應運而生。unicode將所有的語言都統一到一套編碼裡,這樣就不會有亂碼問題了。unicode標準也在不斷發展,但最常用的是用2個位元組表示1個字元(偏僻的字元,就需要4個位元組)

ascii和unicode區別:ascii編碼是乙個位元組代表乙個字元,unicode2個位元組表示乙個字元,對於漢字來說超出了ascii的編碼範圍,對於英語字母兩者皆可編碼,但unicode編碼就要比ascii編碼多用一倍的儲存空間。所以引出了下面的編碼方式。

utf-8編碼(可變長編碼)把乙個unicode字元根據不同的數字大小編碼成1-6個位元組,常用的英文本母被編碼成1個位元組,漢字通常是3個位元組,只有生僻的字元才會被編碼成4-6個位元組。ascii編碼實際上是utf-8編碼的一部分。

在計算機記憶體中統一使用unicode編碼,當需要儲存到硬碟或傳輸的時候,就轉換為utf-8編碼。例如:用記事本編輯的時候,從檔案讀取的utf-8字元被轉換為unicode字元到記憶體裡,編輯完成後,儲存時又將unicode字元轉換為utf-8儲存到檔案中。

python基礎之字元編碼

1.什麼是字元編碼?字元 標準 字元編碼 數字 2.為什麼要編碼?讓計算機認識人的字元 3.常見的字元編碼 ascii 乙個bytes代表乙個字元 英文本元 鍵盤上的所有其他字元 1bytes 8bit,8bit可以表示0 2 8 1種變化,即可表示256個字元 gbk 2bytes代表乙個字元,由...

python基礎 之字元編碼

一 何謂編碼 二 編碼發展簡述 assic 英文編碼表 unicode 後各國均發展自己的編碼表,導致編碼表混亂,推出萬國碼unicode utf 8 但unicode存乙個字元,統一占用2個位元組,占用空間較大。又推出utf 8,可以根據語言型別,自動調整儲存空間 三 編碼儲存說明 1位 1bit...

python 基礎 字元編碼

編碼基礎 由於每個國家都有自己的字元,所以其對應關係也涵蓋了自己國家的字元,但是以上編碼都存在侷限性,即 僅涵蓋本國字元,無其他國家字元的對應關係。應運而生出現了萬國碼,他涵蓋了全球所有的文字和二進位制的對應關係。unicode 2 4位元組 已經收錄136690個字元,並還在一直不斷擴張中.uni...