查看: 9688|回复: 6

[Tips] GB18030-2000编码标准简介

[复制链接]
论坛徽章:
56
2010年世界杯参赛球队:瑞士
日期:2010-02-26 11:04:012012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23版主2段
日期:2012-05-31 02:10:00版主2段
日期:2012-05-31 02:10:00ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07现任管理团队成员
日期:2012-10-18 18:22:36
发表于 2005-5-9 12:27 | 显示全部楼层 |阅读模式
GB18030-2000编码标准简介
GB18030-2000编码标准是由信息产业部和国家质量技术监督局在2000年 3月17日联合发布的,并且将作为一项国家标准在明年的1月正式强制执行。

1.概述
GB18030-2000编码标准是在原来的 GB2312-1980 编码标准和 GBK 编码标准的基础上进行扩充,增加了四字节部分的编码。它可以完全映射ISO10646的基本平面和所有辅助平面,共有150多万个码位。在ISO10646的基本平面内,它在原来的2万多汉字的基础上增加了7000 多个汉字的码位和字型,从而使基本平面的汉字到达 27000多个。它的主要目的是为了解决一些生、偏、难字的问题,以及适应出版、邮政、户政、金融、地理信息系统等迫切需要的人名、地名用字问题。

GB18030-2000作为GB2311体系的编码字符标准,规定了信息交换用的图形字符及其二进制编码的十六进制表示。它支持 GB 13000.1-1993的全部中日韩(CJK)统一汉字字符和全部中日韩统一汉字Extension A和Extension B的字符。

2.字汇
GB18030-2000编码标准收录的字符分别以单字节、双字节和四字节编码。下面简要列举一下它们各自包括的内容:

1) 单字节部分
单字节部分收录了GB11383的0x00到0x7E全部 128个字符及单字节编码的欧元符号。

2) 双字节部分
双字节部分收录的内容如下:

GB13000.1的全部CJK统一汉字字符;
GB13000.1的CJK兼容区挑选出来的21个汉字;
GB13000.1中收录而GB2312未收录的我国台湾地区使用的图形字符139个;
GB13000.1收录的其它字符31个;
GB2312中的非汉字符号;
GB12345的竖排标点符号19个;
Gb2312未收录的10个小写罗马数字;
Gb2312未收录的带音调的汉语拼音字母5个以及 a和g;
汉字数字“O”;
表意文字描述符13个;
增补汉字和部首/构件80个;
双字节编码的欧元符号。
3) 四字节部分
四字节部分收录了上述双字节字符之外的,包括 CJK 统一汉字扩充 A 在内的 GB13000.1 中的全部字符。

3.编码规则
GB18030-2000标准采用单字节、双字节和四字节三种方式对字符编码。单字节部分采用GB 11383的编码结构与规则,使用 0x00至0x80码位。双字节部分采用两个字节表示一个字符,其首字节码位从 0x81至0xFE,尾字节码位分别是0x40至0x7E和0x80至0xFE。四字节部分第一、三字节仍为0x81~0xFE,第二、四字节采用GB 11383未使用的0x30到0x39作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为0x81308130 到 0xFE39FE39。码位范围分配如下表所示:
未命名.jpg
论坛徽章:
56
2010年世界杯参赛球队:瑞士
日期:2010-02-26 11:04:012012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23版主2段
日期:2012-05-31 02:10:00版主2段
日期:2012-05-31 02:10:00ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07现任管理团队成员
日期:2012-10-18 18:22:36
 楼主| 发表于 2005-5-9 12:28 | 显示全部楼层
四字节字符的编码自第四个字节开始,编码码位为 0x30至0x39;其次是第三个字节,编码码位为0x81至0xFE;再次是第二个字节,编码码位为0x30至0x39;最后是第一个字节,编码码位为0x81至0xFE。即:
未命名.jpg

使用道具 举报

回复
论坛徽章:
56
2010年世界杯参赛球队:瑞士
日期:2010-02-26 11:04:012012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23版主2段
日期:2012-05-31 02:10:00版主2段
日期:2012-05-31 02:10:00ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07现任管理团队成员
日期:2012-10-18 18:22:36
 楼主| 发表于 2005-5-9 12:34 | 显示全部楼层
在一次实际应用中发现GB2312不能正确显示汉字数字“〇”,于是搜到了这篇文章。
看了一些中文编码字符集的介绍后才发现,GB2312是一个很老的字符集了,产生于1980年。
最新的字符集是2000发布的GB18030。

上面的文章转自IBM的网站,下面是作者信息:
王守华
研发工程师, 红旗 Linux

使用道具 举报

回复
论坛徽章:
56
2010年世界杯参赛球队:瑞士
日期:2010-02-26 11:04:012012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23版主2段
日期:2012-05-31 02:10:00版主2段
日期:2012-05-31 02:10:00ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07现任管理团队成员
日期:2012-10-18 18:22:36
 楼主| 发表于 2005-5-9 12:49 | 显示全部楼层
NND,为什么这个论坛用的编码也是“GB2312”,却能正常显示“〇”?

使用道具 举报

回复
论坛徽章:
0
发表于 2005-7-3 10:17 | 显示全部楼层

php编码问题不是很大的

我记得以前很多地方用GB2312都不可以阿

使用道具 举报

回复
论坛徽章:
0
发表于 2005-8-4 13:51 | 显示全部楼层
感谢提供这些知识噢,,

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
发表于 2005-9-22 16:08 | 显示全部楼层
最初由 臧圩人 发布
[B]NND,为什么这个论坛用的编码也是“GB2312”,却能正常显示“〇”?
[/B]


因为windows操作系统支持GB13000,所以能输入,能显示!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

PostgreSQL中国大会,参会票抢购!

由 PostgreSQL中文社区与ITPUB联合主办的第九届《PostgreSQL 中国技术大会》将在北京隆重召开。PostgreSQL 作为功能最强的的开源关系型数据库之一,得到了越来越多企业的推广和运用,也越来越受到广大技术爱好者的欢迎和重视。这将是 PostgreSQL 的又一次交流盛会。
----------------------------------------
时间:2019年11月29~11月30日

点击报名>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表