编码基础概念

一、ANSI——以美国的英语世界为主导的,第一个诞生的编码。

ANSI指American National Standards Institute(美国国家标准学会)。

ANSI编码不是一种具体的编码方式,而是一种指定在某些环境下使用某些编码方式的标准。比如,在中文环境中ANSI的编码标准为GBK,在日语环境中ANSI的编码标准则是Shift_JIS编码。

二、ASCII编码——ANSI编码的各国各自编写的进化版本

使用0×00~0x7F之间的每个字节表示一个字符,原设计有127个编码。英语世界之外的其他国家对此字符集进行了扩展排在128位后面,除了ascii字符集之外,他们1个到4个字节来表示一个字符,形成了自己语言的编码方式,比如GBK(中文), Big5、Shift_JIS等。

三、GBK——中文环境下ansi编码对应的编码方式为GBK

GBK的编码规则为:

  a) 对于ascii字符集中的字符,使用ascii编码(也就是说gbk编码是兼容ascii编码的);

  b) 非ascii字符使用GB标准。最早是GB2312,但是由于该标准收录的汉字数较少,后来就被GB18030取代。GB18030也在不断扩展,GB18030-2005收录了70244个汉字。本文不叙述gbk的具体编码规则,简单来说该标准表达单个字符使用1字节、2字节、4字节这三种情况。

ASNI编码是不利于跨语言数据交流的,比如windows文件默认使用ANSI编码。那么,在中文windows下创建的文件,在日文windows下是无法正确解析的,因为日文windows下ANSI编码使用的是Shift_JIS编码。

四、unicode——统一了世界各种语言的编码

unicode编码被创造出来,需要注意的是unicode也不是一个具体的编码规则,在unicode标准下,有utf-8,utf-16等具体的实现。他们都对应不同的编码规则。

在某个角度理解,ANSI编码是一种历史遗留,应该被淘汰,进而使用更加先进、方便的unicode编码。苹果使用的也是unicode编码。

你可能感兴趣的:(编码基础概念)