分字(汉字编码)
关于使用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 |

浙公网安备 33010602011771号