【字符编码系列之二】国内中文编码标准简介

来源:互联网 发布:28自动挂机软件 编辑:程序博客网 时间:2024/05/18 03:39

先写个框架,待完善。

常见的字符集有:ASCII字符集、GB2312字符集、Big5字符集、GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码及相应的解码,以便计算机能够识别和存储各种文字。

首先,介绍几个有用的概念:SBCS、DBCS和MBCS。

它们分别是单字节字符集、双字节字符集和多字节字符集的缩写。SBCS、DBCS和MBCS的编码长度分别是1字节、两字节和大于两字节(例如3或5字节)。ASCII字符集就是典型的SBCS,而GB2312、GBK和Big5则是典型的DBCS,而GB18030则是典型的MBCS。

单字节字符集中的字符都用一个字节表示。显然,SBCS最多只能容纳256个字符。可见单字节对于除拉丁语系之外的语言,是无能为力的。这里就要看DBCS和MBCS了。

简单介绍一下,只为下一篇文章引出Unicode字符编码。


  • ASCII字符集
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于英文的一套编码方案。那时的计算机还只是美帝的专利。
ASCII字符集:主要包括控制字符(回车键、退格、换行键等);可显示字符(英文大小写字符、阿拉伯数字和西文符号)。
ASCII编码:将ASCII字符集转换为计算机可以接受的数字系统的数的规则。使用7位(bits)表示一个字符,共128字符;但是7位编码的字符集只能支持128个字符,为了表示更多的欧洲常用字符对ASCII进行了扩展,ASCII扩展字符集使用8位(bits)表示一个字符,共256字符。ASCII字符集映射到数字编码规则如下图所示:


ASCII的最大缺点是只能显示26个基本拉丁字母、阿拉伯数目字和英式标点符号,因此只能用于显示现代美国英语(而且在处理英语当中的外来词如naïve、café、élite等等时,所有重音符号都不得不去掉,即使这样做会违反拼写规则)。


  • GB2312字符集
为了显示中文,必须设计一套编码规则,用于将汉字转换为计算机可以识别的数字编码。中国国家标准委员会开始了设计工作。他们规定,对于ASCII编码0x7F之前的编码全部保留,但是从0x80开始的编码全部作废。也就是说,字节最高位以1开头的,两个字节表示一个汉字。高字节从0xA1到0xF7,低字节从0xA1到0xFE。这样我们就可以组合出大约7000多个中文字符了。在这些编码里,还把数学符号、罗马希腊的 字母、日文的假名们都编进去了,连在ASCII里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的"全角"字符,而原来在127号以下的那些就叫"半角"字符了。它所收录的汉字已经覆盖中国大陆99.75%的使用频率。对于人名、古汉语等方面出现的罕用字,GB2312不能处理,这导致了后来GBK及GB18030汉字字符集的出现。


  • GBK
由于GB2312只收录6763个汉字,于是微软利用GB 2312未使用的编码空间,制定了GBK编码。使用了双字节编码方案。GBK是对GB2312的扩展,完全兼容GB2312。为了弥补GB2312的不足,国家也推出了GB18030标准。GBK是双字节编码,每个字符用两个字节表示。


  • GB18030

GBK是双字节编码,每个字符用两个字节表示。GB18030是多字节字符集,它的字符可以用一个、两个或四个字节表示。码位空间由各字节的范围确定。

  • Big5
Big5,又称大五码,是繁体中文(正体中文)最常用字符集标准,共收录13060个汉字。Big5码是一套双字节字符集,使用了双八码存储方法,以两个字节来安放一个字。第一个字节称为"高位字节",第二个字节称为"低位字节"。"高位字节"使用了0x81-0xFE,"低位字节"使用了0x40-0x7E,及0xA1-0xFE。



0 0
原创粉丝点击