三種編碼方案的定變長與字節數總結:編碼
Unicode 是 Unicode Standard(Unicode標準)的簡寫,因此 Unicode 便是指 Unicode 標準。代理
它脫離具體平臺、語言,給每個字符 一個惟一的數字code--碼點(code point)code
碼點的格式 U+[XX]XXXX X:表明一個十六制數字
能夠有 4-6 位,不足 4 位前補 0 補足 4 位,超過則按是幾位就是幾位。如下是碼點的一些具體示例:U+0048,U+4F60,U+1D11E。最後一個是5位的碼點。orm
範圍[U+0000,U+10FFFF] 理論大小爲 10FFFF+1=110000(16進制)[FFFF+1 轉10進制 = 65536 ]。是一個百萬級別的數。io
平面[Plane]爲了更好分類管理如此龐大的碼點數,把每 65536 個碼點做爲一個平面,總共 (1 x 16 + 1 )= 17 個平面。form
UTF 便是 Unicode 轉換格式(Unicode (or UCS) Transformation Format)效率
變長的編碼方案:1,2,3,4 四種 byte 組合擴展
採用高位保留方式 來區別不一樣變長coding
碼點對應字節二進制
碼點轉換
N 字節模式,首字節以「N 個 1 再加 0 」打頭,後跟「N-1」個以「10」打頭的字節。
1024 × 1024 = 2^10×2^10 = 2^4×2^16 = 16×65536
Lead = (碼點 – 10000(16)) ÷ 40016 + D800 Trail = (碼點 – 10000(16) % 40016 + DC00