Unicode 是一种字符集,Unicode 的学名是 "Universal Multiple-Octet Coded Character Set",简称为UCS。
UCS 可以看作是 "Unicode Character Set" 的缩写。
这一标准的 2 字节形式通常称作 UCS-2。然而,受制于 2 字节数量的限制,UCS-2 只能表示最多 65536 个字符。
Unicode 的 4 字节形式被称为 UCS-4 或 UTF-32,能够定义 Unicode 的全部扩展,最多可定义 100 万个以上唯一字符。
2016-06-21 颁发的 Unicode 9.0 共收录 128,237 个字。
UCS-4 是一个更大的尚未填充完全的 31 位字符集,加上恒为 0 的首位,共需占据 32 位,即 4 字节。
理论上最多能表示 2^31 个字符,完全可以涵盖一切语言所用的符号。
------------------------------------------------------------
UTF 是 “UCS Transformation Format” 的缩写。
UCS 只是规定如何编码,并没有规定如何传输、保存这个编码。
例如“汉”字的 UCS 编码是 6C49,
我可以用 4 个ascii 数字来传输、保存这个编码;
也可以用 utf-8 编码 3 个连续的字节 E6 B1 89 来表示它。
关键在于通信双方都要认可。
UTF-8、UTF-7、UTF-16 都是被广泛接受的方案。
------------------------------------------------------------
UCS2 和 UTF16有区别
UCS2是定长的,固定2个字节,所以不能支持扩展字符,而UTF16是变长的。
------------------------------------------------------------
多字节字符集和宽字符集
1.宽字符(wide character,该字符集内每个字符使用相同的位长)Unicode规范是宽字符的规范
宽字符是宽度始终为 16 位的多语言字符代码。 字符常量的类型是 char;对于宽字符,该类型是 wchar_t。 由于宽字符始终具有固定大小,
因此使用宽字符集可以简化使用国际字符集进行的编程。
2.多字节字符(multibytecharacter,每个字符可以是一到多个字节不等,
而某个字节序列的字符值由字符串或流(stream)所在的环境背景决定)