1、ASCII编码
为了能在电报、打印机、计算机等电信设备上进行信息交换,就必须为不同的设备制定统一的编码格式。早期的电信设备字符编码基本都是使用6位编码。1963年美国国家标准协会(ANSI)制定并公布的ASCII编码是第一个被广泛采用7位编码。
ASCII全称:American Standard Code for Information Interchange,美国信息交换标准码。直至1986年最后一次修订,ASCII共定义了128个字符:
1.1、控制字符
其中0x00~0x1F这32个属于控制字符,这些控制字符用于控制通信设备,比如0x07(BEL,bell)表示蜂鸣器响铃,0x08(BS,backspace)表示退格,0x0A(LF,line feed)表示换行,0x0D(carriage return)表示回车,0x0C(FF,form feed)表示换页…
回车和换行被分为两个字符是有一定的历史原因的。早期的打字机回车、换行是两个动作。回车就是打字机把纸张重置到行首位置,换行就是把纸张上移一行。
这些控制字符在打印设备与字符屏幕等终端上无法显示,一些终端设备为这些控制字符提供了拓展,使这些字符显示笑脸、扑克牌花色等符号。
1.2、打印字符
0x20~0x7F为可显示字符,其中比较特殊的0x20
第32号字符为空格字符,0x7F
第127号字符为DEL控制字符。
在很多编程语言中会把空格与控制字符作为空白字符处理。所以实际可显示图形字符共94个。
94这个特殊的数字对于在后面GB2312中会再次出现。
1.3、ASCII编码的国际化
美国的很多国家标准都被ISO组织给国际化了,ASCII也不例外。
国际标准化组织和国际电工委员会ISO/IEC于1972年制订了ISO/IEC 646标准,它来自于多个国家标准(主要是ASCII),允许其他国家根据需要修改ASCII中的$
@
[
\
]
^
{
|
}
~
12个字符为自己国家使用。
2、EASCII编码
欧洲国家与美国走得最近的,美国在计算机方面的发展也影响到了欧洲国家,编码问题就是其中之一。
很多欧洲国家觉得ASCII码中的95个可显示字符并不能表示本国语言的所有字符。而ASCII码使用7位编码,第8位作为校验纠错位,对于计算机内存而言,校验纠错变得不是那么必要了,使用8位编排256个字符明显不需要额外的编程成本和存储成本。于是许多的制造商在ASCII的基础上添加了128个扩展字符,其中比较流行的是IBM和微软共同制定并在MS-DOS上使用的CP437编码(Code Page 437)。
3、ISO-8859编码
由于各国制造厂商的EASCII扩展编码不统一,于是ISO/IEC委员会颁布了8位字符编码标准——ISO/IEC 8859。
这个编码标准共有16部分,分别以ISO/IEC 8859-n
表示(其中ISO/IEC 8859-12印度梵文已废弃),这些字符集可以以ISO-8859-n
作为MIME名称,比如最常见的iso-8895-1是西欧语言的8位编码标准。
下面是ISO-8895的16个编码标准:
部分 | 名称 | 颁布时间/最后修订时间 |
---|---|---|
ISO/IEC 8859-1 | 拉丁语系1-西欧 | 1987/1998 |
ISO/IEC 8859-2 | 拉丁语系2-中欧 | 1987/1999 |
ISO/IEC 8859-3 | 拉丁语系3-南欧 | 1988/1999 |
ISO/IEC 8859-4 | 拉丁语系4-北欧 | 1987/1998 |
ISO/IEC 8859-5 | 斯拉夫语(Cyrillic) | 1988/1999 |
ISO/IEC 8859-6 | 阿拉伯语(Arabic) | 1987/1999 |
ISO/IEC 8859-7 | 希腊语(Greek) | 1987/2003 |
ISO/IEC 8859-8 | 希伯来语(Hebrew) | 1988/1999 |
ISO/IEC 8859-9 | 拉丁语系5-土耳其语 | 1989/1999 |
ISO/IEC 8859-10 | 拉丁语系6-北日耳曼语 | 1992/1998 |
ISO/IEC 8859-11 | 泰语(Thai) | 2001 |
ISO/IEC 8859-13 | 拉丁语系7-波罗的语 | 1998 |
ISO/IEC 8859-14 | 拉丁语系8-塞尔特语 | 1998 |
ISO/IEC 8859-15 | 拉丁语系9-西欧 | 1999 |
ISO/IEC 8859-16 | 拉丁语系10-东南欧 | 2001 |
ISO/IEC 8859-12 | 原预留给印度梵文,后搁置废弃 | 搁置废弃 |
4、汉字编码GB2312
信息技术飞速发展,计算机也开始进入中国,但是有个很严峻的问题:中华文化博大精深,光常用汉字就有几千个,这明显无法用单个字节进行编码,于是智慧的中国人民使用两个字节搞出了GB2312编码,并美其名曰:DBCS(Double Byte Charecter Set 双字节字符集)。
4.1、GB2312介绍
G