Unicode 與 UTF-8 的關(guān)系

Unicode 是字符集

在早期, Unicode 是集標(biāo)準(zhǔn)與編碼形式于一身的,既面向標(biāo)準(zhǔn),又面向存儲.但是現(xiàn)在, Unicode 只是一個字符集,它定義了某個具體字符對應(yīng)的碼位 (Code Point)

一開始unicode是集標(biāo)準(zhǔn)與編碼形式于一身的,既面向標(biāo)準(zhǔn),又面向存儲。那時候還沒有互聯(lián)網(wǎng),大家都是用電腦存儲東西進(jìn)行單機(jī)操作,或者說互聯(lián)網(wǎng)應(yīng)用還很稀少。所以那時候unicode得不到推廣,只是理論上有這么一套東西存在。unicode規(guī)定,第65538的字符存儲起來,就要三個字節(jié)了,因為2個字節(jié),最大排序是65536,所以65538那個編號的字符,占用三個字節(jié),但是這三個字節(jié)解析起來很容易出錯,所以unicode這時候根本沒人用他,只是有這套標(biāo)準(zhǔn),而沒應(yīng)用。然后后來國際標(biāo)準(zhǔn)組織制定出來了ucs-2標(biāo)準(zhǔn),但是ucs-2還是面向存儲的,規(guī)定一個字符必須用2個字節(jié)存儲,對于大于2個字節(jié)的,又制定了ucs-4標(biāo)準(zhǔn),規(guī)定一個字符全都用4個字節(jié)存儲。后來互聯(lián)網(wǎng)火了,國際標(biāo)準(zhǔn)組織又搞出了utf-8/utf-16/utf-32,這三個編碼方案主要是面向傳輸?shù)?,?dāng)然也是一種存儲方案,這時候,unicode才被全世界所應(yīng)用。

UTF-8 是編碼規(guī)則

UTF 即 Unicode Transformation Formats .UTF 的作用是對 字符/Code Point 編碼和解碼,使其可以 以二進(jìn)制形式進(jìn)行存儲或傳輸.
至于一個字符占多少個字節(jié),在不同的 UTF 規(guī)則中是不同的.

在UTF-8中,0-127號的字符用1個字節(jié)來表示,使用和US-ASCII相同的編碼。這意味著1980年代寫的文檔用UTF-8打開一點問題都沒有。只有128號及以上的字符才用2個,3個或者4個字節(jié)來表示。因此,UTF-8被稱作可變長度編碼。

通過一個特定的編碼規(guī)則,可以將 一個Code Point 編碼為 一個UTF-8規(guī)則下的二進(jìn)制數(shù).反之可以將 一個UTF-8規(guī)則下的二進(jìn)制數(shù) 解碼為 一個Code Point.

UTF-8的編碼解碼規(guī)則

U+ 0000 ~ U+ 007F: 0XXXXXXX
U+ 0080 ~ U+ 07FF: 110XXXXX 10XXXXXX
U+ 0800 ~ U+ FFFF: 1110XXXX 10XXXXXX 10XXXXXX
U+10000 ~ U+1FFFF: 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX
作者:邱昊宇
鏈接:https://www.zhihu.com/question/23374078/answer/24385963
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

U+開頭的即 Code Point,通過判斷 某個具體字符的 Code Point 所在的范圍,決定這個字符以多少個字節(jié)進(jìn)行編碼解碼.
編碼后的相同字節(jié)數(shù)的二進(jìn)制數(shù),它們每個字節(jié)的前綴都是有固定值的(個人認(rèn)為這和哈夫曼編碼有點類似的).計算機(jī)讀取到前綴,即可知道這個字符占多少個字節(jié).

總結(jié)

Unicode 是一個字符集,包含了非常多的不同國家的字符.
而對 Unicode 進(jìn)行編碼解碼的規(guī)則有許多,如:UTF-8,UTF-16.
使用 UTF-8 這種編碼規(guī)則,是為了節(jié)省存儲字符值的空間.

參考

Unicode 和 UTF-8 有何區(qū)別?
學(xué)點編碼知識又不會死:Unicode的流言終結(jié)者和編碼大揭秘

最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

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