博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
utf-8查找字符分隔
阅读量:5265 次
发布时间:2019-06-14

本文共 574 字,大约阅读时间需要 1 分钟。

关于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

你可能感兴趣的文章
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
linux sed命令
查看>>
html标签的嵌套规则
查看>>
[Source] Machine Learning Gathering/Surveys
查看>>
HTML <select> 标签
查看>>
类加载机制
查看>>
tju 1782. The jackpot
查看>>
湖南多校对抗赛(2015.03.28) H SG Value
查看>>
hdu1255扫描线计算覆盖两次面积
查看>>
hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
查看>>
bzoj3224 splay板子
查看>>
程序存储问题
查看>>
Mac版OBS设置详解
查看>>
优雅地书写回调——Promise
查看>>
android主流开源库
查看>>
AX 2009 Grid控件下多选行
查看>>