这篇博客我们来介绍万国码实际存储编码中的
utf-16
与utf-32
utf-16是什么
utf-16存储ucs4中的BMP
此时uft-16存储ucs4的情况就跟ucs-2存储ucs2的情况一模一样.
utf-16存储大于BMP的ucs4编码
以存储ucs4编码00000000 000010000 11111111 11111111
为例
第一步:去掉高位的0
10000 11111111 11111111
第二步:减
将去掉高位0的结果减去
0x10000
10000 11111111 11111111
-
1 00000000 00000000
=
1111 11111111 11111111
第三步:填充
将相减的结果按"从低位到高位"的方向填充到110110xx xxxxxxxx 110111xx xxxxxxxx中,填不满的话用补0.
所以最终的编码就是:11011011 11111111 11011111 11111111
utf-32是什么
uft-32
是理论编码方案ucs4
是实际编码方案uft-32
有时也被叫作ucs-4
- 不变长存储,每个编码的长度都是4个字节
不常用
- 因为
uft4
只用到了0组17个平面,所以使用不变长存储的utf-32
存储的话至少有一个字节是浪费的,非常的不划算. - 所以这种存储方案不常使用.