字符编码和编码方式

unicode是一种字符编码规定,比如规定了数32h就表示字符’2’,数61h就表示字符’a’等等。
unicode并不规定编码方式,也就是说它只建立一种对应关系,而怎么在实际的程序中去实现这种对应关系不作规定。

比如我们可以这样实现:
用4个字节表示一个整数,然后再去找unicode对应表中这个整数对应的字符,于是就能用四个字节表示一个字符了。这种实际实现的对应方法叫编码方式。

比如utf8就是一种计算机中常用的编码方式,其部分实现看下表:

0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

也就是说,当我们查看一个字节,若发现字节位是110开头的,我们就知道这个字节和接下来的一个字节(共两个字节)一起表示了一个字符。我们将这个字节的低5位和下一字节的低6位拼起来,一共是11位,然后用这11位所表示的数(这个数位于[80h, 7ffh]之间)去unicode对应表中找到其对应的字符,就是这两个字节用utf8解码的字符了。

转载于:https://www.cnblogs.com/xuejianbest/p/10285158.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值