淺談計算機編碼-ASCII、Unicode、UTF-8

我們知道,在計算機內部,所有的信息最終都表示爲一個二進制的字符串。每一個二進制位(bit)有0和1兩種狀態,因此八個二進制位就可以組合出256種狀態,這被稱爲一個字節(byte)。也就是說,一個字節一共可以用來表示256種不同的狀態,每一個狀態對應一個符號,就是256個符號,從00000000到11111111。

ASCII

ASCII(American Standard Code for Information Interchange,美國信息互換標準代碼)是一套基於拉丁字母的字符編碼,共收錄了 128 個字符,這128個字符只佔用了一個字節的後7位,最前面的1位統一規定爲0。

但是,不同的國家有不同的字母。其他的非拉丁字母語言,無法很好的用ASCII碼錶表示,尤其是漢語,一個字節的256個符號不足以表示漢字(簡體中文編碼GB2312,使用兩個字節表示一個漢字)。因此出現了各種適應其他語言的編碼。比如中文的GB2312等。可是,不同的編碼表使得亂碼的情況大大增加。因此,出現了能包含所有編碼表的編碼Unicode。

Unicode

Unicode字符集編碼全稱:Universal Multiple-Octet Coded Character Set,通用多八位編碼字符集。Unicode字符集是國際組織制定的可以容納世界上所有文字和符號的編碼方案。

Unicode編碼使用兩個字節(0x0000-0xFFFF)來表示一個字符,世界上任何文字和符號都對應於Unicode字符集中的一個二進制代碼,但是:Unicode只是一個符號集, 它只規定了符號的二進制代碼, 卻沒有規定這個二進制代碼應該如何存儲。

Unicode編碼的優點是覆蓋了世界上所有的文字和符號,缺陷則是佔用了大量空間,使網絡傳輸的速度下降。對於英文字符這樣的來說更是浪費了一個字節的位置。

這種情況下就出現了UTF-8。

UTF-8編碼

UTF-8全稱:8bit Unicode Transformation Format,8比特Unicode通用轉換格式。UTF-8是一種針對Unicode的可變長度字符編碼。可以表示Unicode標準中的任何一個字符,且其編碼中的第一個字節仍然與ASCII兼容。這就使得容量上較Unicode編碼更小,傳輸更快速。也是現在最常使用的編碼表。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章