介绍
既然 Unicode 已经包含了所有字符,为什么还要用 UTF-8进行转编呢,直接用 Unicode 码不就好了吗?原因就是如果用 Unicode 会浪费过多的空间,比如 ASCII 码用256位就能全部覆盖了,但是如果用 Unicode 呢,会多出好多空间来。不便于存储以及传输。
所以,Unicode 只制定标准,不做具体实现,具体的实现方式就要依靠 UTF-8、GB18030 这些了。
拿 UTF-8 来说,它是一种可变长字符编码,用ASCII码能表示的就直接用ASCII码,不行的再想办法,主打一个能省则省。
可以用文本编辑器测试一下,写一个英文字母,用 UTF-8 编码保存,大小是1个字节。而如果写一个汉字呢,就是3个字节。
同样的,UTF-16、UTF-32都有自己的一套编码方式,宗旨就是为了减小体积,提高效率