utf-8查找字符分隔

关于utf-8编码简介,可参见这篇博文,写得非常地好。

 

Unicode符号范围 | UTF-8编码方式
(十六进制)          | (二进制)
--------------------+---------------------------------------------
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

刚看utf-8编码时很不解为什么每个字节前两个要放10呢,前天忽然发现这样做可以很容易地查找到字符的开始和结尾,因为10不是一个合法字符的最高位,1位utf-8编码最高位是0,而n位(n>=2)合法编码是以n个1开头的,所以向前、向后查看几个字节的最高位即可确定字符编码边界。

不知道这个10还没有其他的用处,另外不太清楚GBK是怎么确定字符编码边界的,如果快速向前或向后移动一个字符,待学习。

转载于:https://www.cnblogs.com/windtail/archive/2012/08/26/2657485.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值