4-character_encoding

第四章 字符编码 (Character Encoding)

1 简介

在计算机中,任何字符都需要经过编码(Encoding)才能正确的被计算机处理,这是因为计算机只能理解0和1,而字符是人类使用的符号。将字符转换成0和1的过程被称为字符编码(Character Encoding);将0和1转换成可读的字符被称为字符解码(Character Decoding)。最常见的与字符编码相关的概念有:ASCII编码方法,UTF-8编码方法和Unicode标准。

2 ASCII 编码(ASCII Encoding)

ASCII是一种用于电子设备通信的字符编码标准。她的全称是American Standard Code for Information Interchange. 在计算机系统中,ASCII标准被广泛的用于表达英文字母、数字、和英文标点符号。

ASCII使用单字节表示一个字符。因此,ASCII编码方法一共可以表达256个不同的字符。ASCII编码中,前32个字符(值为0-31)为控制字符(Control Characters)。她们用于控制设备(Control Device)或者提供元信息(Provide meta-information)等功能。第33-127位的字符(值为32-126)为可打印字符(Printable Characters)。她们分别表示字母、数字和标点符号。第128位字符表示DEL键。从129位开始,直至256位为扩展ASCII字符(Extended ASCII Characters);这些字符包括一些数学符号和拉丁字母。

下面是ASCII编码的对照表。我们常称这个对照表为ASCII表。

图一 ASCII表

图一 ASCII表

3 Unicode标准

从ASCII编码可以看出,ASCII编码只能表示英文字符(拉丁字母),而不能表示其他语言的文字。因此,为了能使计算机处理世界上各个国家各个语言的文字,Unicode联盟(Unicode Consortium)推出了Unicode标准。

Unicode是一套标准;她包含了多种不同的字符编码方法(例如:UTF-8、UTF-16等)和同一字符的不同写法(例如:不同字体等)。在最新的Unicode标准中,该标准已收录了14余万个字符。

4 UTF-8 编码(UTF-8 Encoding)

UTF-8 编码是Unicode标准中定义的一种非常流行的编码方法。UTF-8是一种变长的编码方法;不同字符的表示方式和长度可能不同。而且,UTF-8与ASCII表是“兼容的”,因为,在UTF-8中,如果第一个字节的值在[0, 127]之间的话,那么,这个字符为单字节字符;其所表示的字符与ASCII表中的对照一致。在UTF-8编码下,其余的字符由2-4个字节表示。

5 UTF-8 与 Unicode

我们在本文提到的Unicode指的是Unicode标准(Unicode Standard)。然而,由于历史原因,有时Unicode又可以表示一个通用编码字符集(Universal Coded Character Set, or UCS)。这个字符集包含了所有的字符,并为每一个字符分配一个唯一的id。所以,我们可以使用一句话来解释Unicode和UTF-8之间的关系:Unicode字符集是一个包含所有字符的集合,使用UTF-8编码方式能将这些字符存储在计算机中,因为,每一个字符都有一个唯一与之对应的id。Unicode标准则包含了Unicode字符集、多种编码方式;其中,UTF-8是目前最为流行的一种编码方式。其他的编码方式还有:UTF-16、UTF-32等。

6 结语

本章介绍了计算机中字符的表示和编码相关的内容。ASCII编码是一种较为简单的编码方式;她能够表达所有的英文字符,数字、英文标点和一些拉丁字符。然而,ASCII编码不能用于其他语言的文字。因此,Unicode标准制定了一种统一的,表达和处理世界上各种文字的方法。Unicode标准还包含了多种字符的编码方式,其中UTF-8是目前最为流行的一种编码方式。

 

上一章
下一章

注册用户登陆后可留言

Copyright  2019 Little Waterdrop, LLC. All Rights Reserved.