Ansi编码和UTF-8编码

时间:2023-01-05 10:32:54


原文地址:http://www.yanwushu.com/post/4.html



  • ANSI指American National Standards Institute(美国国家标准学会)。
  • ANSI编码不是一种具体的编码方式,而是一种指定在某些环境下使用某些编码方式的标准。比如,在中文环境中ANSI的编码标准为GBK,在日语环境中ANSI的编码标准则是Shift_JIS编码。
  • ASCII编码使用0×00~0x7F之间的每个字节表示一个字符,英语世界之外的其他国家对此字符集进行了扩展,除了ascii字符集之外,他们1个到4个字节来表示一个字符,形成了自己语言的编码方式,比如GBK, Big5、Shift_JIS等。
  • 中文环境下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标准下,有utf-8,utf-16等具体的实现。他们都对应不同的编码规则。
  • 在某个角度理解,ANSI编码是一种历史遗留,应该被淘汰,进而使用更加先进、方便的unicode编码。

资源

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

http://blog.csdn.net/chaijunkun/article/details/4654397#comments