搞清楚字符编码08-万国码[4](utf-8)

这篇博客介绍万国码中的实际存储编码utf-8

utf-8是什么
  • utf-8是一种实际存储编码
  • 它即可以存储理论编码ucs2又可以存储理论编码ucs4
  • 变长存储,各个字符编码的长度可能不相同.
  • 它是为了解决ucs-2中的浪费问题而产生的.
utf-8如何存储ucs2
方案
范围方案
0 &lt; x ≤ 7 0 &lt; x \leq 7 0<x70xxxxxxx
7 &lt; x ≤ 11 7 &lt; x \leq 11 7<x11110xxxxx 10xxxxxx
11 &lt; x ≤ 16 11 &lt; x \leq 16 11<x161110xxxx 10xxxxxx 10xxxxxx
16 &lt; x ≤ 21 16 &lt; x \leq 21 16<x2111110xxx 10xxxxxx 10xxxxxx 10xxxxxx
21 &lt; x ≤ 26 21 &lt; x \leq 26 21<x26111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
26 &lt; x ≤ 31 26 &lt; x \leq 31 26<x311111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
编码步骤
  • 第一步:查找原先的ucs-2编码
    • 例如字的ucs-2编码为01111110 11001111
  • 第二步:以字节为单位去年高位的0
    • 去掉高位的0后,经字的编码变成了1111110 11001111,还剩下15位
  • 第三步:把剩下的位数看作x,根据剩下的位数寻找对应的方案
    • 这里我们应该找到方案1110xxxx 10xxxxxx 10xxxxxx
  • 第四步:按照"从右向左的顺序"将剩下的编码填充到方案的x
    • 这里,要将1111110 11001111填充到1110xxxx 10xxxxxx 10xxxxxx
    • 填充的结果应该是:1110x111 10111011 10001111
  • 第五步:填充后如果还有剩下的x用0填充,得到utf-8编码
    • 1110x111 10111011 10001111中的x用0填充后得到11100111 10111011 10001111
    • 所以汉字的utf-8编码就是11100111 10111011 10001111
utf-8如何存储ucs4
  • 跟存储ucs2的情况一样,也是变长存储.
  • 只不过在编码时ucs2只会用到前3种方案,ucs46种方案全会用到.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值