1. Unicode 只规定了字符与数字之间的映射关系,至于具体怎么由计算机表示,那是UTF的职责
Unicode 可以简单理解为一个电话本,电话号码就是数字表示,人名就是对应字符,二者能够相互映射
而电话号码具体你怎么记录(比如要不要加个密啥的,逆序书写等),Unicode 并不关心,那依赖 UTF 具体实现
2. UTF 是实际负责如何存储字符的数字表示的,有不同的实现,比如
UTF-8 采用了不定长编码方案,英文就占一个字节,中文占两个字节,还有的需要三个字节
UTF-16 则使用2个字符或者4个字节编码数字
UTF-32 统一采用4个字节进行编码
优缺点就很明显了:
UTF-8 当存储内容更多字符是英文字符的时候会节省空间
UTF-32 当存储更多字符是中文的时候更节省空间
UTF-16 居中,折衷方案
3. Unicode 兼容了 ASCII 编码,0-127 的数字表示的字符与 ASCII 码表相同