unicode和UTF-8的区别

1、unicode是编码字符集,而UTF-8是字符集编码

2、字符集为每一个【字符】分配一个唯一的ID(学名为 码位/ 码点/ Code Point)

3、比如"知"的唯一ID(unicode)是30693,记作 U+77E5(30693的十六进制为0X77E5),如果要把这个汉保存到计算机中,机器码是多少?

4、计算机内部存储的形式是0101的二进制数字串,汉保存在计算机肯定也是0101的数字串,"知"的unicode为U+77E5,

转换为二进制为111 0111 1110 0101,但是"知"保存到计算机中并不是111 0111 1110 0101

5、保存到计算机中,要取决于那种字符集编码,如果用utf8,那么"知"字在计算机保存的值为0xE79FA5,也就是11100111 10011111 10100101

6、那么上面这个是怎么来的?UTF-8顾名思义是一套以8位一个编码单位的可变长编码,会将一个码位编码为 1 到 4 个字节

U+ 0000 ~ U+ 007F: 0XXXXXXX
U+ 0080 ~ U+ 07FF: 110XXXXX 10XXXXXX
U+ 0800 ~ U+ FFFF: 1110XXXX 10XXXXXX 10XXXXXX
U+10000 ~ U+1FFFF: 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX

根据上表中的编码规则,"知"的码位U+77E5属于第三行的范围:

           7       7       E       5
        0111    0111    1110    0101        二进制的 77E5
 --------------------------------------
        0111    011111    100101
    1110XXXX  10XXXXXX  10XXXXXX
       E   A     9   F     A   5

U+77E5 按照 UTF-8 编码为字节序列 E79FA5 的过程,反之亦然。  

你可能感兴趣的:(unicode和UTF-8的区别)