中文分字学习笔记
HLT 基础编码练习(CIP),关于使用 GBK 和 UTF8 进行汉字编码的学习总结
1 GBK(GB)
GBK 编码规则简述:
- 使用 1-2 个字节表示一个字符,从左向右一个字节一个字节识别。
- 若当前字节首位为0,则该字符用 1 个字节表示( ASCII 字符)。
- 若当前字节首位为1,则该字符用 2 个字节表示(汉字)。
列表如下:
| 1字节字符(ASCII 字符) | 2字节字符(汉字) |
|---|---|
| 0XXXXXXX | 1XXXXXXX XXXXXXXX |
其中"X"代表0或1。
2 UTF8
UTF8编码规则简述:
- 使用 1-6 个字节表示一个字符,从左向右一个字节一个字节识别。
- 若当前字节首位为 0,则该字符用 1 个字节表示( ASCII 字符,同 GBK )。
- 当字节数大于 2 时(此时表示汉字),假设该字符有 n 个字节,该字符的表示与 n 的关系如下:
- 首字节:前 n 位是 1,n+1 位是 0,后面任意。
- 其余 n-1 个字节,前两位必须是 10,后面任意。
注意汉字的编码前面至少有 2 个 1 (有几个 1 就表示该汉字用几个字节表示)。
列表如下:
| 1字节字符(ASCII字符) | 2字节字符(汉字) | 3字节字符(汉字) | 4字节字符(汉字) | 5字节字符(汉字) | 6字节字符(汉字) |
|---|---|---|---|---|---|
| 0XXXXXXX | 110XXXXX 10XXXXXX |
1110XXXX 10XXXXXX 10XXXXXX |
11110XXX 10XXXXXX 10XXXXXX 10XXXXXX |
111110XX 10XXXXXX 10XXXXXX 10XXXXXX 10XXXXXX |
1111110X 10XXXXXX 10XXXXXX 10XXXXXX 10XXXXXX 10XXXXXX |
参考文献
中文分字学习笔记
https://ymliucs.github.io/chinese_split_word/