关于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是怎么确定字符编码边界的,如果快速向前或向后移动一个字符,待学习。