Unicode 与 UTF-8等

Unicode

ASCII码定义了128个英文字符的编码规则。
随着计算机在不同国家和地区的普及,为适应不同语言的字符出现了更多的字符编码,例如:GB2312,日本的Shift JIS等。
由于使用不同的编码规则,不同国家相互交流时会出现乱码问题(对于同一个二进制编码,不同的字符编码规则解析出不同的字符)。
所以,为了有一种统一的规则,可以对不同国家和地区的字符进行编码,Unicode就出现了

UTF-8 UTF-16 UTF-32

Unicode是一个字符集,规定了每个符号的二进制范围是0x0000 ~ 0x10FFFF(称为码点),需要1~3个字节表示。但是对于具体如何表示的问题并没有规定。例如:只需一个字节就可以表示的字符,是否仍然使用三个字节表示呢?
于是,UTF-8,UTF-16,UTF-32这些编码规则就出现了。

注:UTF(Unicode Transformation Format)

UTF-8: 是一种变长字符编码,被定义为将码点编码为 1 至 4 个字节,具体取决于码点数值中有效二进制位的数量

UTF-16 也是一种变长字符编码, 这种编码方式比较特殊, 它将字符编码成 2 字节 或者 4 字节

UTF-32 是固定长度的编码,始终占用 4 个字节,足以容纳所有的 Unicode 字符,所以直接存储 Unicode 码即可,不需要任何编码转换。虽然浪费了空间,但提高了效率。

参考文章:https://zhuanlan.zhihu.com/p/427488961

2023-08-07

你可能感兴趣的:(Unicode 与 UTF-8等)