常见的编码如下:
国外:ASCII(1968年) ISO8859-1(1987年) UNICODE(1994年)
+ + + + + + >
国内: GB2312(1980年) GBK(1995年) GB18030(2000年)
ASCII是目前计算机中用得最广泛的字符集及其编码,是由美国(美国最先使用电脑)国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式(能组成256种状态,即可表示256个符号)。
ASCII码的取值范围是0~127,可以用7个bit表示。C语言中char型变量的大小规定为一字节,如果存放ASCII码则只用到低7位,高位为0。以下是ASCII码表:
图 A.1. ASCII码表
绝大多数计算机的一个字节是8位,取值范围是0~255,而ASCII码并没有规定编号为128~255的字符,为了能表示更多字符,各厂商制定了很多种ASCII码的扩展规范。注意,虽然通常把这些规范称为扩展ASCII码(Extended ASCII),但其实它们并不属于ASCII码标准。例如以下这种扩展ASCII码由IBM制定,在字符终端下被广泛采用,其中包含了很多表格边线字符用来画界面。
图 A.2. IBM的扩展ASCII码表
在图形界面中最广泛使用的扩展ASCII码是ISO-8859-1,也称为Latin-1,其中包含欧洲各国语言中最常用的非英文字母,但毕竟只有128个字符,某些语言中的某些字母没有包含。如下表所示。
图 A.3. ISO-8859-1