计算机的最小存储单元为二进制位,只能存储 0 或 1,用来存储人类的符号就需要一层 映射关系

映射关系最初使用的 ASCII 单字节 编码规则,但由于计算机的普及,单字节字符映射的 数量 以无法满足需求。

后来中国发布了一套有关汉字字符集编码 GB-2312-1980 , 用俩个字节对字符进行编码,并兼容 ASCII

但每个国家都为自己的语言制定字符集编码时,当装有不同编码系统的计算机之间通信就会 乱码 现象。

为了解决 乱码 问题,ISO 国际标准化组织提出 Unicode 字符集编码的新标准,该标准涵盖了世界上 所有 的文字和符号,也就是每一个字符都有一个唯一的二进制编码。

那么 UTF-8、UTF-16 编码方案又是什么呢?首先要区分 现代五层编码模型 中的俩个重要概念:

比如字符 A 在 ASCII 编码中的的 字符代码 为 65,在 字符编码 中是 01000001 十进制也是 65,在 GB2312 中俩者也是一致的。

但在 Unicode 中使用的 UCS-4 ,每个字符都是用 4 个字节来表示,如果还是采用上述一相致的编码方式,则会造成储存资源的浪费,因此需要在 字符代码和字符编码间进行再编码UTF-8 就是针对 不同范围 的字符代码转化成 不同长度 的字符编码,同时编码也是以字节为单位储存,而 UTF-16 的区别在于的 二进制位数,比如 A 在 UTF-8 可变长编码后存储一个字节就可以表示,在 UTF-16 编码下就需要俩个字节。

总结:在全球互联大背景下,Unicode 字符集和编码方式解决了跨语言、跨平台的交流问题,同时 UTF-8 等编码又有效的节约了 储存空间传输带宽,因为此受到了极大的推广和应用。