Unicode與UTF-8之間的關(guān)聯(lián)與差別

提到編碼我們常想起來的是ASCII、Unicode,字符集我們可能想到GBK、GB2312、UTF-8、但是他們之間有什么區(qū)別呢,我來說一下我的理解,錯誤的地方希望大家指正。

  1. ASCII編碼,它涵蓋的字符最少也是最早的最簡單的一種編碼,轉(zhuǎn)碼后在計算機內(nèi)存中單個字符以一個字節(jié)表示。

  2. GB2312編碼,它兼容ASCII編碼并涵蓋了所有簡體漢字,轉(zhuǎn)碼后在計算機內(nèi)存中單個字符以兩個字節(jié)表示。

  3. GBK編碼,它兼容ASCII編碼并在GB2312的基礎(chǔ)上增加繁體漢字以及亞洲其他國家的文字比如日語、韓語,轉(zhuǎn)碼后在計算機內(nèi)存中單個字符以兩個字節(jié)表示。

  4. Unicode編碼比較特殊,它涵蓋了世界上幾乎所有國家的文字并且兼容ASCII碼,為所有涵蓋的字符都定義了編碼的表示方式,但它并沒有規(guī)定這些編碼在計算機內(nèi)存里以什么規(guī)則存儲,所以誕生了UTF-8,它規(guī)定了所有的Unicode編碼使用動態(tài)長度,表示不同語言的不同碼段使用不同的長度(1-8個字節(jié))表示。

總結(jié)一下,我認(rèn)為Unicode是文字到到編碼的轉(zhuǎn)換規(guī)則,而UTF-8是編碼到字節(jié)的轉(zhuǎn)換規(guī)則,而其他的例如ASCII、GB2312、GBK則同時包含兩種規(guī)則

在一些社區(qū)論壇經(jīng)常看到有關(guān)于“編碼字符集”以及“字符集編碼”的討論,并且描述的比較復(fù)雜讓人難以理解,我個人認(rèn)為兩種東西沒有什么可比性。我認(rèn)為“字符集編碼”就是我們常說的字符集,例如U8、ASCII,它規(guī)定字符以何種規(guī)則編碼,相當(dāng)于制定了一個標(biāo)準(zhǔn),而“編碼字符集”則是指編寫代碼時基于哪種字符集對輸入的文字進行編碼轉(zhuǎn)換。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容