Table 12-1. UTF-8 Encoding
Character Range Encoding
0...7F 0a6a5a4a3a2a1a0
80...7FF 110a10a9a8a7a6 10a5a4a3a2a1a0
800...FFFF 1110a15a14a13a12 10a11a10a9a8a7a6 10a5a4a3a2a1a0
10000...10FFFF
11110a20a19a1810a17a16a15a14a13a1210a11a10a9a8a7a610a5a4a3a2a1a0
解释一下啊,看不懂
Character Range Encoding
0...7F 0a6a5a4a3a2a1a0
80...7FF 110a10a9a8a7a6 10a5a4a3a2a1a0
800...FFFF 1110a15a14a13a12 10a11a10a9a8a7a6 10a5a4a3a2a1a0
10000...10FFFF
11110a20a19a1810a17a16a15a14a13a1210a11a10a9a8a7a610a5a4a3a2a1a0
解释一下啊,看不懂
(字符范围 十六进制) (编码 二进制) 第一字节 第二字节 第三字节 第四字节
0...7F(1 byte) 0*******
80...7FF(2 bytes) 110***** 10******
800...FFFF(3 bytes) 1110**** 10****** 10******
10000...10FFFF(4 bytes) 11110*** 10****** 10****** 10******
-----------------------------------
这个明白,一个字节最大127,但是
80...7FF(2 bytes)
-----------------
这个是指从80-7FF?那7FF的二进制编码怎么会110***** 10******呢?
还有三字节四字节怎么解释啊?
============================================================“字符”和“编码”是两个概念。字符范围80-7ff实际只有12位(二进制),用2个字节表示,第一个字节前3位固定为110,第二个字节前2位固定为10。字符范围800-ffff实际是16位(二进制),用3个字节表示,第一个字节前4位固定为1110,后二个字节前2位固定为10。字符范围10000-10ffff实际是20位(二进制),用4个字节表示,第一个字节前5位固定为11110,后三个字节前2位固定为10。