UTF-8 编码
特点
-
1采用变长多字节编码,采用1-4个字节对字符进行编码;
-
2能够表示UNICODE标准中任何字符;
-
3Unicode只是一组字符设定或者说是字符逻辑映射的概念编码,可认为是一个字符集;
-
4UTF-8是Unicode字符编码在计算机中储存编码;
字节编码与字符
- 单字节编码: ASCII字符 Unicode范围:U+0000-U++7F
- 双字节编码: 带变音符号的语言字符 Unicode范围: U+0080-U+07FF
- 三字节编码: 中日韩CJK、东南亚、中东语言字符
- 四字节编码: 极少使用的语言字符
字节编码规则
- 单字节字符,字节的二进制最高位位值为0。
- 多字节字符,首字节的二进制连续高位位值为1的个数决定字节数目,其他字节的二进制前两位一律为10,剩余的二进制位值由Unicode码点值决定。
1字节 |
0xxxxxxx |
|
|
|
|
|
2字节 |
110xxxxx |
10xxxxxx |
|
|
|
|
3字节 |
1110xxxx |
10xxxxxx |
10xxxxxx |
|
|
|
4字节 |
11110xxx |
10xxxxxx |
10xxxxxx |
10xxxxxx |
|
|
5字节 |
111110xx |
10xxxxxx |
10xxxxxx |
10xxxxxx |
10xxxxxx |
|
6字节 |
1111110x |
10xxxxxx |
10xxxxxx |
10xxxxxx |
10xxxxxx |
10xxxxxx |
Unicode码点范围与UTF-8编码字节
1字节 |
7 |
U+0000 0000 |
U+0000 007F |
0xxxxxxx |
|
|
|
2字节 |
11 |
U+0000 0080 |
U+0000 07FF |
110xxxxx |
10xxxxxx |
|
|
3字节 |
16 |
U+0000 0800 |
U+0000 FFFF |
1110xxxx |
10xxxxxx |
10xxxxxx |
|
4字节 |
21 |
U+0001 0000 |
U+0010 FFFF |
11110xxx |
10xxxxxx |
10xxxxxx |
10xxxxxx |
微信服务公众号