ASCII :
全称: American Standard Code for Information Interchange.
简介:
标准ASCII 码使用7位二进制来表示字符,一共128个,其中33为控制字符,其余为可打印字符。属于Single Byte Charecter Set(SBCS)。
扩展ASCII使用了整个字节的8位,它增强了标准ASCII的能力,能够支持一些图形符号和一些特殊符号。
但是,对于非英语国家来说,ASCII远远达不到使用需求,那怎么办?答案是ANSI。
ANSI :
全称: American National Standards Institute
简介:
文本编辑类软件中通常会看到ANSI编码,但实际上,它不是一种特定的某种编码,相反,它包含了很多种编码。除了ASCII本身,其他编码都以ASCII为基础(也就是兼容ASCII)发展而来,通常使用双字节编码,即Double Byte Charecter Set(DBCS)。如:简体中文GB2312,繁体中文Big5,日文JIS。
它具体指定的编码是”the default code page for my system”,即当前系统环境下的默认语言编码,例如:对于英文系统是ASCII编码,对于简体中文是GB2312,繁体环境为Big5等。
因为ANSI中的各种非ASCII编码中的编码互有重叠,会造成编码的混乱,如同一个字,可能简体,繁体,日文中都存在,但它们的编码却不一致!这样会使得网页或者软件在不同语言环境下很混乱,要时刻注意转码处理。于是,UNICODE来了。
UNICODE :
简介:
Unicode出现的目的是为了解决ANSI造成的混乱现象。它实现了全世界范围内文字的统一编码。历史上,Unicode.org组织设计的unicode与ISO组织的UCS(Universal Character Set )互不兼容,但自从unicode 2.0后,unicode与UCS就兼容了,可以看做等价物。
Unicode事实上是指字符集,它包含了多种编码方法,常见的有UTF-8,UTF-16,UTF-32。但现实中在不同的软件环境下,可能有不同含义。如windows系统下,unicode编码一般是指带有BOM的小端UTF-16编码。
UTF-16/UCS-2:
全称: Unicode/UCS transfer format
简介:
UTF-16比起UTF-8,好处在于大部分字符都以2字节 编码,但UTF-16却无法兼容ASCII码。
UTF-16包括三种:UTF-16,UTF-16BE(Big Endian),UTF-16LE(Little Endian)。大端和小端表示二进制数据存储方式。那么对于UTF-16怎么知道其存储方式呢?答案是使用BOM(Byte Order Mark)。该字符来表明文件是Big Endian还是Little Endian。BOM的值为0xFEFF。
UTF-8:
简介:
UTF-8是变长字节编码,它使用1-4个字节来表示所有字符。如:ASCII码在UTF-8中只占用一个字节,因此UTF-8兼容ASCII。因此,UTF-8较UTF-16等非常节省内存或者网络带宽。但是正因为可变长字节编码,所以在计算字符串长度的时候,效率没有固定字节编码方式的高。
另一个重要的方面,UTF-8是以字节为编码单元,所以它没有字节序也就是大小端的问题,使其跨平台能力和容错能力很高,这一点跟UTF-16 UTF-32不同。
虽然不需要字节序,但是UTF-8也可以使用BOM。注意在Windows环境中UTF-8可能就添加了BOM。
GB2312:
简介:
GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称GB0,由中国国家标准总局发布,1981年5月1日实施。GB2312编码通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。
GB 2312兼容ASCII,使用2个字节编码。虽然满足当时大陆的中文使用环境,但是汉字集合太少,不能编码孤僻汉字和繁体字。
GBK:
简介:
GBK是微软实现的一套编码,也就是CP936,是对GB2312编码的扩展,但中国未将其做为国家标准。它增加了对繁体字的支持,能够适用于简繁中文共存的环境,但是它不能够跟Big5兼容,两者需要转换。
GBK也使用2个字节编码,向下完全兼容GB2312。
GB18030:
简介:
GB 18030,全称:国家标准GB 18030-2005《信息技术中文编码字符集》,是中华人民共和国现时最新的内码字集,是GB 18030-2000《信息技术信息交换用汉字编码字符集基本集的扩充》的修订版。收录了27484个汉字,同时收录了藏文、蒙文、维吾尔文等主要的少数民族文字。
GBK使用1,2,4字节编码,向下完全兼容GB2312,于GBK基本兼容。
相关术语:
1) BOM:略
2) Big endian 、Little endian: 略。
3) Code page:
Code page是一个描述字符集的列表,起初由IBM设计使用,随后微软 SAP等也采用这种表示法,用来映射编码。例如微软的code page中,GBK对应的code page是CP936,GB18030是CP54936。