1 unicode編碼表
unicode只有乙個字符集,中、日、韓的三種文字占用了unicode中0x3000到0x9fff的部分
unicode目前普遍採用的是ucs-2,它用兩個位元組來編碼乙個字元, 比如漢字"經"的編碼是0x7ecf,注意字元編碼一般用十六進製制來 表示,為了與十進位制區分,十六進製制以0x開頭,0x7ecf轉換成十進位制 就是32463,ucs-2用兩個位元組來編碼字元,兩個位元組就是16位二進位制, 2的16次方等於65536,所以ucs-2最多能編碼65536個字元。 編碼從0到127的字元與ascii編碼的字元一樣,比如字母"a"的unicode 編碼是0x0061,十進位制是97,而"a"的ascii編碼是0x61,十進位制也是97, 對於漢字的編碼,事實上unicode對漢字支援不怎麼好,這也是沒辦法的, 簡體和繁體總共有六七萬個漢字,而ucs-2最多能表示65536個,才六萬 多個,所以unicode只能排除一些幾乎不用的漢字,好在常用的簡體漢字 也不過七千多個,為了能表示所有漢字,unicode也有ucs-4規範,就是用 4個位元組來編碼字元,不過現在普遍採用的還是ucs-2,只用兩個位元組來 編碼
為什麼有了utf-16, 還會有utf-8呢?幹嘛搞這麼多複雜的編碼呢? 一種編碼不很好麼? 答案是為了節省頻寬, 因為早期網際網路頻寬非常昂貴.
下面需要一些基礎知識
a. 1 bit = 2種兩種可能性
b. 1 byte = 8 bit
c. 1 byte = 2 ^ 8 次方 = 256 種可能性
d. 1 byte 可以給256個字元編碼
e. byte = 位元組
ok了, 接著往下講
人們希望在一套系統裡面能夠容納所有字元(unicode), 但是乙個位元組, 2^8次方(256)個字元是不夠的. 所以就有了 utf-16, 2^16 (65536)個字元, 這樣就夠了. 乙個字元對應乙個數字.
因為大部分網際網路資料是西文(英法德意西), 而這些西文用128個字元可以表示完, 人們想出一種辦法, 具體看
@邱昊宇 的標識法.
結果是西文字元只用1 byte表示, 其他不常見的字元(中日韓阿拉伯文等), 用2-4 byte 表示.
因為早期網際網路上大量都是英文和其他西文內容, 所以這樣編碼, 是有助於減少檔案大小, 從而減少需要的頻寬的. 而因為utf-8在早期網頁的通用性, 所以現在大家都沿用了下來.
一句話,utf8是對unicode字符集進行編碼的一種編碼方式
漢字編碼表示與顯示
一 漢字的編碼 1981年5月,我國國家標準總局頒布了 資訊交換用漢字編碼字符集 gb2312 80 簡稱國家標準漢字編碼,也叫國標碼。國標碼共收進標準字元7445個。其中一級漢字3755個,二級漢字3008個,共計6763個漢字。由於漢字的字元多,乙個位元組即8位二進位制 不足以表示所有的常用漢字...
漢字編碼問題
漢字編碼問題 由於常常要和漢字處理打交道,因此,我常常受到漢字編碼問題的困擾。在不斷的打擊與堅持中,也積累了一點漢字編碼方面的經驗,想和大家一起分享。一 漢字編碼的種類 漢字編碼中現在主要用到的有三類,包括gbk,gb2312和big5。1 gb2312又稱國標碼,由國家標準總局發布,1981年5月...
漢字編碼問題
漢字編碼問題 由於常常要和漢字處理打交道,因此,我常常受到漢字編碼問題的困擾。在不斷的打擊與堅持中,也積累了一點漢字編碼方面的經驗,想和大家一起分享。一 漢字編碼的種類 漢字編碼中現在主要用到的有三類,包括gbk,gb2312和big5。1 gb2312又稱國標碼,由國家標準總局發布,1981年5月...