系统梳理 unicode 与编码方式

编码标准的演进时间线

第一阶段:英语世界 (1960s)

第二阶段:多语言环境 (1980s)

  • 主角:GB2312 (中国大陆), Big5 (台湾地区) 等
  • 背景与原因:
    • 计算机开始在全球普及,进入了非英语国家。亚洲语言(中、日、韩)拥有数以千计的字符,一个字节(最多 256 个字符)完全不够用。
    • 当时还没有全球统一的解决方案,于是各个国家和地区开始自己动手,丰衣足食。
  • 解决方案与时间线:
    • 约 1980 年 - GB2312:中国大陆发布《信息交换用汉字编码字符集·基本集》,收录了约 6763 个简体汉字和 682 个符号。它采用双字节编码,规定一个小于 127 的字节是 ASCII 字符,两个大于 127 的字节组合在一起表示一个汉字。
    • 约 1984 年 - Big5:由台湾五家大公司联合制定,主要用于繁体中文环境。它也是一个双字节编码方案,解决了当时台湾电脑上没有统一中文标准的问题。
    • 这个时期的特点:各自为政。一个用 Big5 编码的文件,在只支持 GB2312 的系统上打开,就会显示成一堆无意义的符号,这就是 乱码 的根源。这些编码互相不兼容,给国际信息交换带来了巨大的障碍。

第三阶段:Unicode 标准的诞生 (1990s)

  • 主角:Unicode标准
  • 背景与原因:
    • 互联网开始兴起,全球信息化的浪潮势不可挡。“乱码”问题成为了软件国际化的巨大痛点。
    • 迫切需要一个统一的、涵盖全球所有字符的字符集,让每个字符都有一个全球唯一的“身份证号”。
  • 解决方案:
    • Unicode 标准横空出世。它的目标不是成为另一种编码,而是创建一个字符集。它只规定字符的数字编号(码点 Code Point),例如“欢”的编号是 U+6B22,但它最初并没有强制规定这个编号应该如何在计算机中存储为二进制。
    • 它像一本巨大的字典,收录了所有文字,并不断扩充。

第四阶段:Unicode 的实现与发展 (1990s - 2000s)

Unicode 只是一个标准(字典),还需要具体的编码方案(存放规则)来落地。

总结

  1. 从简单到复杂:从只处理英文的 ASCII 开始。
  2. 从混乱到统一:经历了 GB2312Big5 等区域编码的“乱码时代”。
  3. 标准的诞生:Unicode 提供了统一的“字典”,解决了“应该收录哪些字”的问题。
  4. 实现的多样性与优胜劣汰:UTF-16UTF-8 等是实现 Unicode 的具体方法。UTF-8 因其卓越的兼容性和效率,最终在互联网领域胜出。
  5. 国家标准的演进:中国的编码标准也从 GB2312 -> GBK -> GB18030 一路发展,最终与国际标准 Unicode 全面对齐。

关联文章


文章作者: huan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 huan !
  目录