Unicode 是否是隻有兩個字節,爲何能表示超過 65536 個字符

 
Unicode 目前規劃的總空間是17個平面(平面0至16),0x0000 至 0x10FFFF。每一個平面有 65536 個碼點。
你只是大體知道平面0(「Basic Multilingual Plane」,即「BMP」)的 65536 個碼點(即 0x0000 至 0xFFFF)如何編碼,這不是 Unicode 的所有。
  • BMP 的字符是 Unicode 中最基礎和最經常使用的一部分,以 UTF-16 編碼時使用2字節,以 UTF-8 編碼時使用1至3字節。
  • 超出 BMP 的字符以 UTF-16 或 UTF-8 編碼都須要4字節。
  • 另外還有一個比較少用的編碼形式,UTF-32,它編碼任何 Unicode 字符都須要4個字節。

Unicode 的基礎是一個編號的字符集,在字符集之上又規定了模塊化的編碼等等技術層次,各類具體的編碼形式並不一致,你說的「Unicode 只有兩個字節」這句話根本不成立。html



做者:梁海
連接:https://www.zhihu.com/question/22881537/answer/22947465
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

 

--------------------------------------------------------------------------------------------------------java

網上說的佔兩個字節,通常是java程序員,char字符默認使用Unicode編碼的ucs-16be,一個char佔據兩個字符,因此在char來表示大於65536時候,編譯期會報錯,如程序員

那爲何string又能夠呢?https://www.cnblogs.com/crazylqy/p/10481785.html模塊化

相關文章
相關標籤/搜索