Table 12-1. UTF-8 Encoding
 Character Range             Encoding
 
  0...7F                   0a6a5a4a3a2a1a0
 
 80...7FF                  110a10a9a8a7a6 10a5a4a3a2a1a0
 
800...FFFF                 1110a15a14a13a12 10a11a10a9a8a7a6 10a5a4a3a2a1a0
 
10000...10FFFF   
                       11110a20a19a1810a17a16a15a14a13a1210a11a10a9a8a7a610a5a4a3a2a1a0
 
解释一下啊,看不懂

解决方案 »

  1.   

    UFT-8编码是多字节的,根据首个字节的范围,确定字符是几个字节。Character Range          Encoding
    (字符范围 十六进制)      (编码 二进制)                         第一字节 第二字节 第三字节 第四字节
    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******
      

  2.   

    0...7F(1 byte)           0*******
    -----------------------------------
    这个明白,一个字节最大127,但是
    80...7FF(2 bytes) 
    -----------------
    这个是指从80-7FF?那7FF的二进制编码怎么会110***** 10******呢?
    还有三字节四字节怎么解释啊?
      

  3.   

    这个是指从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。
      

  4.   

    补充:“字符”指的是unicode码,“编码”是utf-8码。
      

  5.   

    其实,4 bytes的UTF-8的字符范围是10000-1fffff,而不是10000-10ffff。