#unicode Emoji 编码网络参考资料
unicode Emoji 编码网络参考资料
注:
- Emoji在Unicode编码中,占用了U+1F300到U+1F64F中的部分范围。(https://en.wikipedia.org/wiki/Emoji)
- utf16 编码(java android javascript)
从U+10000到U+10FFFF的码位 使用四个字节,high surrogate使用的是U+D800–U+DBFF,low surrogate使用的是U+DC00-U+DFFF
辅助平面(Supplementary Planes)中的码位,在UTF-16中被编码为一对16比特长的码元(即32bit,4Bytes),称作代理对(surrogate pair),具体方法是:
UTF-16解码
lead \ trail DC00 DC01 … DFFF
D800 10000 10001 … 103FF
D801 10400 10401 … 107FF
⋮ ⋮ ⋮ ⋱ ⋮
DBFF 10FC00 10FC01 … 10FFFF
码位减去0x10000,得到的值的范围为20比特长的0..0xFFFFF.
高位的10比特的值(值的范围为0..0x3FF)被加上0xD800得到第一个码元或称作高位代理(high surrogate),值的范围是0xD800..0xDBFF.由于高位代理比低位代理的值要小,所以为了避免混淆使用,Unicode标准现在称高位代理为前导代理(lead surrogates)。
低位的10比特的值(值的范围也是0..0x3FF)被加上0xDC00得到第二个码元或称作低位代理(low surrogate),现在值的范围是0xDC00..0xDFFF.由于低位代理比高位代理的值要大,所以为了避免混淆使用,Unicode标准现在称低位代理为后尾代理(trail surrogates)。
- utf8 4个字节
浙公网安备 33010602011771号