how-to-use/codec.md

1.2 KiB

UTF-8编码

UTF-8 采用可变长编码的方式,一个字符可占 1 字节 -6 字节,其中每个字符所占的字节数由字符开始的 1 的个数确定,具体的编码方式如下:

范围 1 2 3 4 5 6
0x00000000~0x0000007F 0xxxxxxx
0x00000080~0x000007FF 110xxxxx 10xxxxxx
0x00000800~0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
0x00010000~0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0x00200000~0x03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0x04000000~0x7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

对于 UTF-8 的编码,只需要每次计算每个字符开始字节的 1 的个数,就可以确定这个字符的长度。

来源:[C++ 读取 UTF-8 及 GBK 系列的文本方法及原理-CSDN博客]