三种编码方案的定变长与字节数总结:编码
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