搞清楚字符编码09-万国码[5]

这篇博客我们来介绍万国码实际存储编码中的utf-16utf-32

utf-16是什么
  • utf-16是理论编码ucs4的一种实际存储编码
  • 基本单元是2个字节
  • 变长存储,存储BMP时长度是2个字节,存储的不是BMP时长度为4个字节.
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存储的话至少有一个字节是浪费的,非常的不划算.
  • 所以这种存储方案不常使用.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值