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