`
dch1287
  • 浏览: 123339 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

中文字符编码简介

阅读更多
中文字符编码简介 GB2312、GBK、GB18030、BIG5
-----------------------------------------------------------------
现在的 PC 平台必须支持 GB18030,手机、MP3 一般只支持 GB2312。

GB2312

GB2312 码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集——基本集》,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。

GB2312 收录简化汉字及符号、字母、日文假名等共 7445 个图形字符,其中汉字占 6763 个。GB2312 规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示”,习惯上称第一个字节为“高字节”,第二个字节为“低字节”。

GB2312 将代码表分为 94 个区,对应第一字节;每个区 94 个位,对应第二字节,两个字节的值分别为区号值和位号值加 32(2OH),因此也称为区位码。01-09 区为符号、数字区,16-87 区为汉字区,10-15 区、88-94 区是有待进一步标准化的空白区。GB2312 将收录的汉字分成两级:第一级是常用汉字计 3755 个,置于 16-55 区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计 3008 个,置于 56-87 区,按部首/笔画顺序排列。故而GB2312最多能表示 6763 个汉字。

GB2312 的编码范围为 2121H-777EH,与 ASCII 有重叠,通行方法是将 GB 码两个字节的最高位置 1 以示区别。

GBK

GB2312 仅收汉字 6763 个,这大大少于现有汉字,随着时间推移及汉字文化的不断延伸推广,有些原来很少用的字,现在变成了常用字,例如:朱镕基的“镕”字,未收入 GB2312-80,现在大陆的报业出刊只得使用(金+容)、(金容)、(左金右容)等来表示,形式不一而同,这使得表示、存储、输入、处理都非常不方便,对于搜索引擎等软件的构造来说也不是好消息,而且这种表示没有统一标准。从我们对人民日报 98 年数据的处理过程中,得出这样的经验:回填外字最困难的就是如何得到这种表示方法的集合。

为了解决这些问题,以及配合 UNICODE 的实施,全国信息技术化技术委员会于1995年12月1日《汉字内码扩展规范》。GBK 向下与 GB2312 完全兼容,向上支持 ISO 10646 国际标准,在前者向后者过渡过程中起到的承上启下的作用。GBK 亦采用双字节表示,总体编码范围为 8140-FEFE 之间,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 XX7F 一条线。

GBK 共收入 21886 个汉字和图形符号,包括:

* GB2312 中的全部汉字、非汉字符号。
* BIG5 中的全部汉字。
* 与 ISO 10646 相应的国家标准 GB13000 中的其它 CJK 汉字,以上合计 20902 个汉字。
* 其它汉字、部首、符号,共计 984 个。

微软公司自 Windows 95 简体中文版开始支持GBK代码,但目前的多数搜索引擎都不能很好地支持 GBK 汉字。

GBK 编码区分三部分:

* 汉字区,包括:

GBK/2:OXBOA1-F7FE, 收录 GB2312 汉字 6763 个,按原序排列;
GBK/3:OX8140-AOFE,收录 CJK 汉字 6080 个;
GBK/4:OXAA40-FEAO,收录 CJK 汉字和增补的汉字 8160 个。
* 图形符号区,包括:

GBK/1:OXA1A1-A9FE,除 GB2312 的符号外,还增补了其它符号
GBK/5:OXA840-A9AO,扩除非汉字区。
* 用户自定义区:

即 GBK 区域中的空白区,用户可以自己定义字符。
GB18030

GB18030 是最新的汉字编码字符集国家标准, 向下兼容 GBK 和 GB2312 标准。 GB18030 编码是一二四字节变长编码。一字节部分从 0x0~0x7F 与 ASCII 编码兼容。 二字节部分, 首字节从 0x81~0xFE, 尾字节从 0x40~0x7E 以及 0x80~0xFE, 与 GBK 标准基本兼容。 四字节部分, 第一字节从 0x81~0xFE, 第二字节从 0x30~0x39, 第三和第四字节的范围和前两个字节分别相同。 四字节部分覆盖了从 0x0080 开始, 除去二字节部分已经覆盖的所有 Unicode 3.1 码位。也就是说, GB18030 编码在码位空间上做到了与 Unicode 标准一一对应,这一点与 UTF-8 编码类似。

目前最新的 glibc 2.2.x 系列已经全面支持了 GB18030 Locale 和 GB18030 与 UCS-4 之间的编码转换, 也就是说在系统层上 Linux 已经可以支持 GB18030 标准了。 下面问题的关键就是怎样让 XFree86 窗口系统也支持 GB18030 标准。

BIG5

BIG5 是通行于台湾、香港地区的一个繁体字编码方案。虽然存在一些瑕疵,但广泛应用于电脑行业,尤其是互联网中,从而成为一种事实上的行业标准。

1983年10月,台湾国家科学委员会、教育部国语推行委员会、中央标准局、行政院共同制定了《通用汉字标准交换码》,后经修订于1992年5月公布,更名为《中文标准交换码》,BIG5 是台湾资讯工业策进会根据以上标准制定的编码方案。

BIG5 码是双字节编码方案,其中第一个字节的值在 OXAO-OXFE 之间,第二个字节在 OX40-OX7E 和 OXA1-OXFE 之间。

BIG5 收录 13461 个汉字和符号,包括:

* 符号 408 个,编码位置 A140-A3BE
* 常用字 5401 个,编码位置 A440-C67E,包括台湾教育部颁布的《常用国字标准字体表》的全部汉字 4808 个,台湾教科书常用字 587 个,异体字 6 个。
* 次常用字 7652 个,编码位置 C940-F9D5,包括台湾教育部颁布的《次常用国字标准字体表》的全部汉字 6341 个,《罕用国字标准字体表》中使用频率较高的字 1311 个。





中文的几个编码 GB2312、GBK、GB18030、GB13000
-----------------------------------------------------------------
GB2312

GB2312(1980年)一共收录了 7445 个字符,包括 6763 个汉字和 682 个其它符号。汉字区的内码范围高字节从 B0-F7,低字节从 A1-FE,占用的码位是72*94=6768。其中有 5 个空位是 D7FA-D7FE。

在 Windows 中的代码页是 CP936。

GBK

GBK 最初是由微软对 GB2312 的扩展,也就是 CP936 字码表 (Code Page 936)的扩展(原来的 CP936 和 GB2312-80 一模一样),最初出现于 Windows 95 简体中文版中,由于 Windows 产品的流行和在大陆广泛被使用,中华人民共和国国家有关部门将其作为技术规范。注意GBK并非国家正式标准,只是国家技术监督局标准化司、电子工业部科技与质量监督司发布的“技术规范指导性文件”。虽然 GBK 收录了所有 Unicode 1.1 及 GB 13000.1-93 之中的汉字,但是编码方式与 Unicode 1.1 及 GB 13000.1-93 不同。仅仅是 GB 2312 到 GB 13000.1-93 之间的过渡方案。GBK 收录了 21886 个符号,它分为汉字区和图形符号区。汉字区包括 21003 个字符。

GBK 作为对 GB2312 的扩展,在现在的 Windows 系统中仍然使用代码页 CP936 表示,但是同样的 936 的代码页跟一开始的 936 的代码页只支持 GB2312 编码不同,现在的 936 代码页支持 GBK 的编码,GBK 同时也向下兼容GB2312 编码。

GB18030

2000 年的 GB18030 取代了 GBK1.0 的正式国家标准。该标准收录了 27484 个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持 GB18030 ,对嵌入式产品暂不作要求。所以手机、MP3 一般只支持 GB2312。 

GB18030 在 Windows 中的代码页是 CP54936。

GB13000

GB13000 等同于国际标准的《通用多八位编码字符集 (UCS)》 ISO10646.1,就是等同于 Unicode 的标准,代码页等等的都使用UTF的一套标准。

从 ASCII、GB2312、GBK 到 GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为 0。按照程序员的称呼,GB2312、GBK 到 GB18030 都属于双字节字符集 (DBCS)。


分享到:
评论

相关推荐

    常用字符集及字符编码简介

    字符集与字符编码是计算机处理文字的基础,它们决定了如何用二进制表示各种语言的字符。在信息技术领域,理解和掌握字符集与字符编码至关重要,因为它们直接影响到数据的存储、传输和显示。以下是对这些概念的详细...

    中文字符编码(ChineseCharacterCodes).zip

    中文字符编码是计算机科学领域中的一个重要概念,尤其是在处理汉字和其他多语言文本时。这个压缩包“中文字符编码(ChineseCharacterCodes).zip”包含了五种主要的中文字符集,分别是Unicode、GB2312-80、GBK、Big 5...

    易语言字符编码转换

    GB2312和GBK是中国常用的简体中文编码,GBK在GB2312基础上增加了更多的汉字;UTF-8是一种多字节编码,可以表示世界上大部分语言的文字,且在互联网上广泛使用。 易语言字符编码转换源码中,可能包含以下关键知识点...

    字符编码查询工具

    它支持中文字符以及ASCII和GBK这两种常见的字符编码标准。这个工具的主要目的是帮助用户快速地查找特定字符在不同编码体系下的表示方式。 ASCII(American Standard Code for Information Interchange,美国信息...

    字符集和字符编码

    Big5, 又称为大五码或五大码,是使用繁体中文社区中最常用的电脑汉字字符集标准,共收录 13,060 个汉字,普及于台湾、香港与澳门等繁体中文通行区。Big5 码是一套双字节字符集,使用了双八码存储方法,以两个字节来...

    文件汉字字符编码查看

    本文将深入探讨字符编码的原理,以及如何查看和处理不同编码格式的文件,特别是在面对汉字字符时可能出现的问题。 首先,我们需要理解什么是字符编码。字符编码是一种规则,它将字符(如汉字、字母、数字等)映射为...

    常用汉字字符编码

    ### 常用汉字字符编码解析 在信息技术领域,字符编码是将文本转换为计算机可读格式的关键技术。本文将深入探讨与“常用汉字字符编码”相关的知识点,涵盖标题、描述及部分内容中提及的核心概念。 #### 一、什么是...

    字符集和字符编码详解

    Unicode是一个广泛采用的字符编码标准,它旨在包含世界上所有语言的字符,包括汉字。Unicode使用固定长度的编码,通常为16位或32位,这使得不同语言的文本可以统一处理。 Unicode的实现方式有多种,其中最常见的是...

    字符编码详情.pdf

    - **简介**:最早的中文字符编码标准之一,主要用于简体中文,定义了6763个汉字和682个符号。 - **特点**:使用双字节编码,不能覆盖全部的汉字和符号。 - **GBK** - **简介**:GB2312的扩展,增加了对繁体中文...

    韩文字符编码总表.xlsx

    韩文字符编码总表

    中英文字符编码查询工具

    本工具“中英文字符编码查询工具”专注于帮助用户快速查询中文和英文字符的编码,这对于开发者调试程序、处理文本数据或理解字符编码原理具有重要意义。 首先,我们来了解最基本的ASCII编码。ASCII(American ...

    工具-字符编码转换

    本文将基于“工具-字符编码转换”的主题,深入探讨字符编码的概念、常见编码格式、字符编码转换工具以及如何进行实际操作。 字符编码是计算机表示和处理文字的一种方式,它将各种字符与二进制数字对应起来。常见的...

    不同字符编码转换

    它是互联网上最古老的字符编码,但无法表示中文和其他非拉丁字符。 2. Unicode编码:Unicode是一种通用的字符集,旨在包含世界上所有语言的字符。它使用16位或32位编码,支持超过110,000个字符。Unicode定义了多个...

    汉字字符编码(utf-8 unicode gb2312)

    汉字字符编码是计算机处理汉字时的关键技术,涉及到不同的编码标准,如UTF-8、Unicode和GB2312。这些编码方式各有特点,各有应用场景,理解它们有助于在处理中文字符时避免乱码问题。 首先,让我们来详细了解这些...

    汉字字符编码 区位码 GB2312 GB18030-2005及Unicode 8.0字符集

    汉字字符编码是计算机处理汉字的关键技术,它使得汉字能在数字设备上存储、传输和显示。在中文信息处理领域,有几种重要的字符编码标准,包括区位码、GB2312、GB18030-2005以及Unicode 8.0。 区位码是早期中国...

    关于 字符编码的 转换 知识

    本文将详细探讨字符编码的基础知识,并着重介绍几种常见的字符编码及其转换方法,特别是针对中文字符的处理。 #### 二、ASCII与扩展ASCII ASCII(American Standard Code for Information Interchange)即美国信息...

    java使用URLDecoder和URLEncoder对中文字符进行编码和解码

    例如,中文字符在UTF-8编码下会转换为多个百分号序列。 ```java String urlStr = URLEncoder.encode("天津大学", "utf-8"); ``` 上面的代码会将“天津大学”编码为一个符合`application/x-www-form-urlencoded`格式...

    字符编码转换处理工具

    "字符编码转换处理工具"是一款实用的软件,专为处理汉字和字母在不同编码体系之间的转换问题而设计,它支持十六进制、二进制以及ANSI码等多种编码形式。 首先,我们要理解什么是字符编码。字符编码是一种规则,它将...

    完整版字符编码查看器.rar

    "完整版字符编码查看器"是一款实用工具,它可以帮助用户查看和理解各种字符编码格式,包括常见的ASCII、Unicode(如UTF-8、UTF-16)以及GB2312、GBK等简体中文编码。 首先,ASCII编码是最基础的字符编码,它包含了...

Global site tag (gtag.js) - Google Analytics