中文分字学习笔记

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

参考文献

[1] 李老师的讲义-Chinese-encoding


中文分字学习笔记
https://ymliucs.github.io/chinese_split_word/
作者
Yumeng Liu
发布于
2021年11月30日
许可协议