计算机的最小存储单元为二进制位,只能存储 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 等编码又有效的节约了 储存空间 和 传输带宽,因为此受到了极大的推广和应用。