编码原则:兼容ascii码,长度可变
在UTF-8编码中可以通过以下规则来确定一个完整的字
- 第一位为0则对应ascii编码表
- 第一位为1
- 第二位为0则为一个完整的字中的一个字节
- 第二位为1
- 第三位为0则为两个字节组成的字的第一个字节
- 第三位为1
- 第四位为0则为三字节组成的字的第一个字节
- 第四位为1
- 第五位为0则为4字节组成的字的第一个字节
综上所述:
16进制 | 二进制 | 字节对应 |
---|---|---|
0x00 ~ 0x7f | 0000 0000 ~ 0111 1111 | ascii |
0x80 ~ 0xbf | 1000 0000 ~ 1011 1111 | 非头字节 |
0xc0 ~ 0xdf | 1100 0000 ~ 1101 1111 | 双字节头 |
0xe0 ~ 0xef | 1110 0000 ~ 1110 1111 | 三字节头 |
0xf0 ~ 0xf7 | 1111 0000 ~ 1111 1111 | 四字节头 |