字元編碼小結

2021-09-22 06:32:20 字數 2062 閱讀 8197

******************************

儲存器位(bit),位元組(byte),字(word), 雙字(double word)

1 byte = 8 bits

1 word = 2 bytes = 16 bits

1 double word = 2 words = 4 bytes = 32 bits

******************************

單位元組來自遠古時代。

計算機最初是在美國等國家發明的,所以只需要把英文本母、數字、標點符號表示出來就好。

這些字元不多,也就200多個。

使用乙個位元組,從00000000到11111111共2^8=256個字元。

如:01000001(即十進位制的65)表示字元"a"

python的chr和ord函式,可以對ascii編碼進行了轉換。

如:chr(65) == 'a', ord('a') == 65

******************************

單位元組iso-8859-1編碼是單位元組編碼,向下相容ascii。

其編碼範圍是0x00-0xff,0x00-0x7f之間完全和ascii一致,0x80-0x9f之間是控制字元,0xa0-0xff之間是文字元號。

此字符集主要支援歐洲使用的語言。

******************************

雙位元組兩個位元組,從00000000 00000000到11111111 11111111共表示256*256個字元

在unicode中,原本ascii中的127個字元只需在前面補乙個全零的位元組即可,

比如前文談到的字元『a』:01100001,在unicode中變成了00000000 01100001。

優點:基本各種語言的字元,如東亞文字,阿拉伯文本,藏文本等等

缺點:對英文來說浪費嚴重,原本只需乙個位元組就能傳輸的英文現在變成兩個位元組,非常浪費儲存空間和傳輸速度。

unicode在很長一段時間內無法推廣,直到網際網路的出現。

這是 python3 中的預設編碼!!!!!!

******************************

可變長位元組

使用1~4個位元組表示乙個符號,根據不同的符號而變化位元組長度。

utf-8的編碼規則很簡單,只有二條:

1)對於單位元組的符號,位元組的第一位設為0,後面7位為這個符號的unicode碼。因此對於英語字母,utf-8編碼和ascii碼是相同的。

2)對於n位元組的符號(n>1),第乙個位元組的前n位都設為1,第n+1位設為0,後面位元組的前兩位一律設為10。剩下的沒有提及的二進位制位,全部為這個符號的unicode碼。

比如​漢字的"中"字在unicode中是01001110 00101101,而在utf-8編碼中是11100100 10111000 10101101。

******************************

雙位元組編碼

gb2312編碼範圍:a1a1-fefe,其中漢字編碼範圍:b0a1-f7fe。

gb2312編碼是第乙個漢字編碼國家標準,由中國國家標準總局2023年發布,2023年5月1日開始使用。

gb2312編碼共收錄漢字6763個,其中一級漢字3755個,二級漢字3008個。

同時,gb2312編碼收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母在內的682個全形字符。

******************************

雙位元組編碼

gb2312編碼的擴充套件,基本上採用了原來gb2312-80所有的漢字及碼位,並涵蓋了原unicode中所有的漢字20902。

總共收錄了883個符號,21003個漢字及提供了1894個造字碼位。

由於gbk同時也涵蓋了unicode所有cjk漢字,所以也可以和unicode做一一對應。

******************************

混合編碼

windows簡體中文作業系統中,ansi是預設的編碼方式。

對於英文檔案是ascii編碼,對於簡體中文檔案是gb2312編碼(只針對windows簡體中文版)

字元編碼小結

1 早期只有127以內的字元 20以內是控制字元。2 後來各國有了自己的編碼,但一般是兩個位元組表示乙個字元 中國 3 unicode 就是解決各國之間衝突的問題,定義了統一的標準。可以65025個字元。這樣英文也是乙個字元兩個位元組,這樣的好處是全世界統一。4 utf 系列其實和unicode可以...

字元編碼小結

ansi ascii american standard code for information interchange 乙個位元組 字元 0 0x32 為控制碼 33 255 為 字元 中 國人民 gb2312 去掉ascii表127之後的定義.規定 乙個小於127的字元意義與原來相同,兩個大於...

字元編碼小結

首先需要記住一件事情,那就是計算機中儲存的一定是二進位制數,是浮點,有符號數,還是無符號數或者是 完全取決於你如何處理這些二進位制,即運算規則。這裡只是關心這些二進位制數跟文字之間的關係,也就是不同的二進位制數如何對映到文字的,或者反過來。有乙個術語用來表示不同的文字和二進位制數之間的關係 字元編碼...