对于编码格式,很早以前就有了解过,不过每次了解完了,总觉得当下记得,过段时间就忘了。也没有写归纳总;
首先计算里面存的只有数字0和1, 但是根据位数变多,只能够表示一个比较大的整数罢了;字符编码,其实就是把一些整数一一对应到某个字符。具体用多大的整数来对应这个字符,由编码规范和实现决定;
注意: 不要把颜色的16进制和字符编码混淆了,颜色的16进制表示色值是另外一种对应关系;
1. Unicode 是种规范, 实现方式有 UTF-8, UTF-32, UTF-16
2. 第一个编码是 0, U+0000;(这里不能够确定在计算中是存储1个字节还是2个)
3. UTF-32 是固定4个字节存储;有点浪费存储, 优点定位快速(0 使用4个字节存储)
4. UTF-8 的存储字节是可变的(1-4)个字节;按需求存储, 要多少用多少规则(0 使用 1个字节存储)
5. UTF-16 的存储字节只有 2 个或者 4个,结合 UTF-32 和 UTF-16 的优缺点;(0 使用2个字节存储)
还有一点,我经常想在 16 进制(0xffff)的时候看出这个编码是几个字节,其实这是个误区,16进制是个描述。 真正存储需要几个字节,由编码背后的意义决定;比如 0 在 utf-8中就只要 1个字节, 在 utf-32 中就要 4 个字节存储;
[参考]
[参考]