我查找资料有些说是4个字节,有些说是2个字节,但我个人认为应该是2个字节,因为unicode编码是4个16进制数值,应该只占用了2个字节,但问题也来了,如果只占用了2个字节,那最多也就只能编码2^16个字符,也就是65536个字符,那为什么说unicode能对世界上绝大多数的字符都进行编码了呢?
我查找资料有些说是4个字节,有些说是2个字节,但我个人认为应该是2个字节,因为unicode编码是4个16进制数值,应该只占用了2个字节,但问题也来了,如果只占用了2个字节,那最多也就只能编码2^16个字符,也就是65536个字符,那为什么说unicode能对世界上绝大多数的字符都进行编码了呢?
试着写下个人看法:
unicode有17个平面,每个平面最多能表示65536个字符。
unicode字符集的基本格式:0x0000~0x10FFFF
16进制表示,前两位代表平面(0~0x10,刚好17个平面),后四位代表平面内表达的字符数(4位,最多655365个字符)。
2字节形式,平面=0,后4位=2字节;
4字节形式,整个unicode码=4字节(实际只需要3字节,计算机里表达都是2的倍数)
你的想法是对的。
这一标准的 2 字节形式通常称作 UCS-2。然而,受制于 2 字节数量的限制,UCS-2 只能表示最多 65536 个字符。Unicode 的 4 字节形式被称为 UCS-4 或 UTF-32,能够定义 Unicode 的全部扩展,最多可定义 100 万个以上唯一字符。
2016-06-21 颁发的 Unicode 9.0 共收录 128,237 个字。
Unicode 是一种字符集,Unicode 的学名是 "Universal Multiple-Octet Coded Character Set",简称为UCS。UCS 可以看作是 "Unicode Character Set" 的缩写。
UCS 只是规定如何编码,并没有规定如何传输、保存这个编码。例如“汉”字的 UCS 编码是 6C49,我可以用 4 个
ascii 数字来传输、保存这个编码;也可以用 utf-8 编码 3 个连续的字节 E6 B1 89 来表示它。关键在于通信双方都要认可。UTF-8、UTF-7、UTF-16 都是被广泛接受的方案。UTF 是 “UCS Transformation Format” 的缩写。