字符编码发展历程

Posted 锅烟煤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符编码发展历程相关的知识,希望对你有一定的参考价值。

ASCII(American Standard Code for Information Interchange)编码

历史背景:计算机在小范围内使用,如美国;

编码规则:用一个字节中的7个bit位表示,范围为0x00~0x7F,可用于控制打字机,0~0x20用于控制,后面包括标点、数字、字母等符号。

ASCII扩展编码

历史背景:计算机在更多欧洲国家使用,ASCII不能够表示更多的欧洲字符;

编码规则:第8个bit位也用于表示字符,扩展范围(0x80~0xFF),表达范围0x00~0xFF。

ANSI(American National Standard Institite )编码

历史背景:计算机在亚洲国家使用,出现很多象形文字,如中文、日文、韩文等,ASCII扩展不能满足要求。

编码思想:根据自身特征,自定义文字编码,并得到ANSI认可。这样会出现多套编码,每套编码都遵循ANSI编码规则,如GB2312(简体中文)、BIG5(繁体中文)、JIT(日文)。

注意事项:ANSI编码只是一个标准,并不是具体的编码。

编码规则:

  1. 可以使用多字节标识;
  2. 各家自定义编码规则;
  3. ASCII原有编码保持不变,比如以前ASCII编码的表示的值,在新编码中表示的值一致;

MBCS(Multi-Byte Chactacter System(Set))

历史背景:ANSI编码标准和规则出现后,MBCS是对ANSI编码的实现。

编码规则:

  1. 遵循ANSI编码规则;
  2. 编码和解码规则各家自定义;

应用实例:GB2312(简体中文)、BIG5(繁体中文)、JIT(日文)等的具体编码

CodePage

历史背景:根据ANSI通过MBCS实现了多套字符集,一个系统、程序要支持多种字符编码是不是要打多个包呢。

解决方法:每套字符集用一个代码表示,该代码称为代码页CodePage,比如系统装了多套字符集(如GB2312、BIG5),通过代码快速实现切换到GB2312。

Unicode编码

历史背景:CodePage和各种字符集解决了一个操作系统、程序内保证使用同一套字符集,但是统一个系统、程序不能同时使用多套字符集,比如在记事本同时显示中文和韩文。

编码思想:大统一,一本容纳所有字符的大字典,摒弃各家自己实现字符集编码。

注意事项:Unicode是一个字符集码表,不是具体的实现。

编码规则:范围0-0x10FFFF,至少3个字节存储,还在不断升级完善中。

Unicode编码实现

历史背景:Unicode编码已提出,具体实现未落地

应用实例:UFT-8、UTF-16(UCS-2)、UTF-32(UCS-4)编码等等

以上是关于字符编码发展历程的主要内容,如果未能解决你的问题,请参考以下文章

字符编码

python 开发 -- 17字符编码

python 开发 -- 17字符编码

字符编码

中文编码的简要历程

字符编码集格式