GB2312,GBK,GB18030详解
来源:互联网 发布:sqlserver 别名 编辑:程序博客网 时间:2024/06/13 12:37
1. GB2312
GB2312 是中国国家标准简体中文字符集,由中国国家标准总局发布,1981年5月1日实施。GB2312编码通行于中国大陆。新加坡等地也采用此编码,中国大陆几乎所有的中文系统和国际化的软件都支持GB2312。
GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。GB 2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。但对于人名、古汉语等方面出现的罕用字和繁体字,GB 2312不能处理,因此后来GBK及GB 18030汉字字符集相继出现以解决这些问题。
编码方式:
GB2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
- 01-09区为特殊符号
- 16-55区为一级汉字,按拼音排序
- 56-87区为二级汉字,按部首/笔画排序
- 10-15区及88-94区则未有编码
2. GBK
GBK即汉字内码扩展规范,K即扩展。1993年,Unicode 1.1版本推出,收录中国大陆、台湾、日本及韩国通用字符集的汉字,总共有20,902个。中国大陆订定了等同于Unicode 1.1版本的“GB 13000.1-93”“信息技术通用多八位编码字符集(UCS)第一部分。
由于GB 2312-80只收录6763个汉字,有不少汉字,如部分在GB 2312-80推出以后才简化的汉字(如“啰”),部分人名用字(如中国前总理朱镕基的“镕”字),台湾及香港使用的繁体字,日语及朝鲜语汉字等,并未有收录在内。于是微软利用GB 2312-80未使用的编码空间,收录GB 13000.1-93全部字符制定了GBK编码。GBK是对GB2312-80的扩展,也就是CP936字码表 (Code Page 936)的扩展(之前CP936和GB 2312-80一模一样),最早实现Windows 95简体中文版。虽然GBK收录GB 13000.1-93的全部字符,但编码方式并不相同。
GBK自身并非国家标准,只是曾相关部门公布为“技术规范指导性文件”。原始GB13000一直未被业界采用,后续国家标准GB18030技术上兼容GBK而非GB13000。
编码方式
字符有一字节和双字节编码,00–7F范围内是一位,和ASCII一致,此范围内严格上说有96个文字和32个控制符号。GBK向下完全兼容GB2312-80编码。 支持GB2312-80编码不支持的部分中文姓,中文繁体,日文假名,还包括希腊字母以及俄语字母等字母。不过这种编码不支持韩国字,也是其在实际使用中与unicode编码相比欠缺的部分。
之后的双字节中,前一字节是双字节的第一位。总体上说第一字节的范围是81–FE(也就是不含80和FF),第二字节的一部分领域在40–7E,其他领域在80–FE。
3. GB18030
GB 18030,是中国现时最新的内码字集,是GB 18030-2000的修订版。与GB 2312-1980完全兼容,与GBK基本兼容,支持GB 13000及Unicode的全部统一汉字,共收录汉字70244个。
GB 18030主要有以下特点:
- 与 UTF-8 相同,采用多字节编码,每个字可以由1个、2个或4个字节组成
- 编码空间庞大,最多可定义161万个字符
- 支持中国国内少数民族的文字,不需要动用造字区
- 汉字收录范围包含繁体汉字以及日韩汉字
双字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x40到0xFE(不包括0x7F)。
四字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x30到0x39,第三个字节从0x81到0xFE,第四个字节从0x30到0x39。
GB 18030-2000,兼容 Unicode 3.0 中日韩统一表意文字,共收27533个汉字;2000年3月17日发布
GB 18030-2005,更新至 Unicode 3.1 中日韩统一表意文字及增加少数民族文字,共有70244个汉字;2005年11月8日发布、2006年5月1日实施
- GB2312,GBK,GB18030详解
- GB2312/GBK/GB18030/UTF8
- GBK、GB18030、GB2312 区别
- GBK、GB18030、GB2312 区别
- GBK、GB18030、GB2312 区别
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- 常用字符集编码详解:ASCII 、GB2312、GBK、GB18030、...
- 常用字符集编码详解:ASCII 、GB2312、GBK、GB18030
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、Unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、UTF-8、unicode 字符集编码详解
- GB2312 GBK GB18030编码介绍
- Apache HttpClient Fluent API:在后台线程中异步执行多个请求
- Android应用内评价/跳转到应用市场功能
- 大数据时代-学生处理问题的应具备的能力的思考
- C++小知识:指针和引用的区别
- bool、int、float、指针变量与“零值”比较的if语句
- GB2312,GBK,GB18030详解
- C++学习笔记_one_day
- 大学期间竞赛生涯_吴尚奇
- C++/C#小知识:关于try_catch 详解
- 写个ACE的最简单程序居然还有内存泄漏!查原因,排除它。
- 制作Windows+Ubuntu多系统安装盘
- C++学习笔记_two_day
- A + B Problem II HDU 1002 ——大数模拟
- C++学习笔记_three_day