计算机中文编码《区位码\国标码\机内码》进阶史

1 篇文章 0 订阅
订阅专栏

       历史悠久的泱泱中华,文化博大精深,文字独一无二,且能没有一套属于自己的计算机编码。1980年,为了使每个汉字有一个全国统一的编码,我国颁布了汉字编码的国家标准:GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是国内所有汉字系统的统一标准。将一些常用符号及汉字,按区与位的方式编入码表,这套编码便是区位码。

一、区位码

区位码是一个四位的十进制数,高两位为区码(01-94),低两位为位码(01-94),由此组成一个94×94的矩阵,每个码值都对应着一个唯一的符号或汉字。如下图示:

图片

图1. 第01区 特殊符号

 图2. 汉字区位码对照表

说明:‘啊’的区位码为1601,区码为16,位码为01。

图片

图3. 多音字‘腌’

说明:这种编码经过加工整理一律以汉语拼音的字母为序, 音节相同的字以使用频率为序,其查找方法与一般汉语字典的汉字拼音音节索引查找法相同。由于它是一种无重码的汉字编码,所以多音字只有一个编码。例如:重庆的“重”和重量的“重”,字同音不同,汉字“重”的编码是按Zhong 音编码。

由图2,图3所示,按拼音音节索引时,编码并不连续,这是因为汉字被分级处理,一级汉字相对更为常用。如下图示:

图片

图4. 区段说明

说明:在某些硬件指标相对偏低的平台上可能依然还在使用着一级码汉字。

二、国标码

汉字区位码定义好后融入计算机,发现少了一些控制符,如回车,换行,退格等,同时ASCII编码中前32个控制码刚好包含了这些,那就借来用用吧!为此,国标码诞生了。为了兼容这些控制码,国标码规定在区码、位码的基础上分别加20H(即32的16进制数)。例如:汉字‘啊’的区位码为1601,则区码为16,位码为01,转换成16进制后,区码为10H,位码为01H,转国标码,则区码10H+20H=30H,位码01H+20H=21H,合成后国标码为3021H;

图片

图5. 国标码

说明:图5为Mac系统中的16点阵中文国标码点阵字库,‘啊’的国标码为3021H。

三、机内码

这里特指汉字机内码,简称“内码”,亦称“变形国标码”,指计算机内部存储,处理加工和传输汉字时所用的由0和1符号组成的代码。

国标码虽说很好地解决了控制字符问题,但随着社会的发展,汉字处理系统想要兼容英文(当时主流就是ASCII),当系统中同时存在ASCII和汉字国标码时,将会产生二义性。例如:有两个字节的内容为30H和21H,它既可表示汉字“啊”的国标码,又可表示ASCII中的“0”和“!”,为此,汉字机内码诞生了。由于ASCII编码范围为00H~7FH,字节最高位皆为‘0’,机内码应对国标码加以适当变换处理,将相应国标码每个字节的最高位置为“1”,即:汉字机内码=汉字国标码+8080H。例如:“啊”字的国标码是3021H,则其汉字机内码为B0A1H=3021H+8080H。

图片

图6. 机内码

说明:图6为按照Windows CP936(内码)编码生成的16Pixel中文点阵字库,只包含了一级码汉字(3755个字符),‘啊’的编码为:B0A1H。

上述所述,不论是区位码,国标码,还是机内码,主要都是针对GB2312-80标准(7K+字符),若按区位码94x94矩阵计算,最大也只能表达94x94=8836个字符,这时有人可能会问,若要支持更多的中文怎么办呢?

这自然难不倒勤劳又机智的“中国人”。看懂下面这张图,就都明白了。

图片

说明:这里主要记录汉字编码,并且第一字节最高位皆为‘1’,也能很好的做到向前兼容。

  1. GB2312-80,字符数 6763 = 

  2. GBK,字符数 21003 = ①+②+③

  3. GB18030-2000,字符数 27533 = ①+②+③+④

  4. GB18030-2005,字符数 70244 = ①+②+③+④+⑤

想要了解更多,推荐看看这篇文章:“国家标准代码 - 百度百科”。

四、Unicode

Unicode 是为了解决传统字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求,中文只是其中的一部分。由于Unicode编码(针对中文)不连续,只能靠查表方式解决编码转换问题。

图7. Unicode

说明:‘啊’的Unicode码值为 554AH。

五、总结

  • 图解

    图片

  • 编码转换

区位码、国标码、机内码之间递进式转换,都在这张表里了。

图片

随着社会发展不断更新迭代,区位码、国标码在应用场景上已慢慢淡出了用户视野,现在最常用的则是内码,Unicode。

说了这么多,想想,若没有这些先辈们的坚持与努力,可能我们今天还在用ASCII计算机呢!

感恩所有为中文编码默默奉献的人!

图片

图片

参考文献:

  • 汉字区位码对照表.pdf

  • 百度百科

  • 知乎

汉字区位码
Johnny的专栏
07-22 5万+
 (0101)  、(0102)  。(0103)  ·(0104)  ˉ(0105)  ˇ(0106)  ¨(0107)  〃(0108)  々(0109)  —(0110) ~(0111)  ‖(0112)  …(0113)  ‘(0114)  ’(0115)  “(0116)  ”(0117)  〔(0118)  〕(0119)  〈(0120) 〉(0121)  《(0122)  》(01
区位码查询
11-09
国际标准汉字区位码区位码
简体和繁体区位码对照表
12-17
文档分成三列,第一列是繁体字,第二列是对应的简体区位码,第三列是对应的繁体区位码,配合我提供的字库文件,可以按照打印简体字的方法来打印繁体字,
c# 批量汉字区位码机内码国标码转换
07-25
今天有一个朋友找我让我帮忙写一个程序,要实现汉字国标码机内码区位码的相互转换,写完后我把程序放上来大家一起分享。 能实现一行汉字中每个字分别自动转换成多种编码。开源!在DEBUG里面有可运行程序直接使用。
汉字编码与编程相关问题总结:ASCII、机内码区位码国标码、Unicode码是如何转换的
最新发布
2401_83803394的博客
03-22 2160
其中一个原因是:0x00在C语言及操作系统文件名(等..)中有特殊意义(如字符串结尾),然而按照Unicode编码的话,很可能这个字符的第一个字节(高字节)为非零数值,而低字节为零,这样C语言就会误认为这是字符串的结尾.所以UTF-8的一个功能是保证Unicode编码表中不出现0x00(当然正常的0x00是可以的)从ASCII、GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。GB2312的两个字节的最高位都是1。
区位码表word版
10-15
汉字区位码表,简单易查。用的时候只需输入要查找的字就可以了。
汉字区位码对照表
学习是为了探索这个世界的本质
03-28 2万+
汉字区位码对照表 a-bei bei--can can-chi chi-da da-dong dong-fei fei-ge ge-guo ha-huan huan-jia jia-jing jing-kao kao-lang lang-lin lin-mai mai-mo mo-nu nu-ping ping-qie qie-r
信息编码--区位码国标码内码
李赛男
10-07 4082
计算机内的信息编码 西文字符编码 西文就是英文,数字,英文标点等等,每个ASCII码以一个字节(Byte)储存,国际通用的7位码用7位二进制数表示一个字符的编码,其编码范围是00000000-01111111,共27=128个字符。(最高位是0)也就是计算机内部使用一个字节存放一个7位ASCII码,b0--b6表示ASCII码值,最高位b7置0。 中文字符编码 后来,计算机传入中国并开始普及时,首要问题是解决中文编码问题,即刻出现了 区位码(国家标准定义) GB2312是一种中文...
GB2312区位码编码表与编码规则
路楷的专栏
01-15 1万+
最近研究字体点阵生成,看到这篇文章,觉得不错! 来源:GB2312区位码编码表与编码规则  来源地址:http://blog.csdn.net/yjier/article/details/6237697 GB2312共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录包括拉丁字母、希腊字母、日文平假名及片假名字母、俄罗斯语西里尔字母在内的682个全形字
机内码、国际码、区位码换算
热门推荐
EtherCAT
07-27 2万+
机内码、国际码是十六进制的,区位码是十进制的。 一般换算全部用十六进制,不过特别注意:区位码从十进制转换为十六进制是两位两位分别转换的。 国际码=区位码(十六进制)+2020H 机内码=国际码+8080H 如:某汉字的区位码是2534。则25D=19H,34D=22H 国际码=1922H+2020H=3952H 机内码=3952H+8080H=B9D2H 所有的国标码
20060427-汉字区位码查询与算法——microsoft visual studio 2005系列
hei55的专栏
09-05 3259
要从事学术研究,一定要学好数学,数学可以把对事物的描述精确化。tuenhai为什么要学习编程?其中一个原因就是利用编程工具进行一些数学运算。记得大约10年前,那时tuenhai还没有电脑,要进行大数计算,怎么办?那时就到处打听,哪里有数位多一些的计算器。一般计算器只有8位,多一些的12位,还是不够用。有一次和故人到大城市,总算打听到了超过12位的计算器,考虑再三,还是没有买下来(不知故人还有没有记
字符集
u011284758的博客
05-24 627
区位码,GB2312,GBK,UTF8,Unicode 1.区位码与GB2312、GBK 区位码是早些年(1980)中国制定的一个编码标准,4个数字表示一个字符。请看下面的区位码表,每一个字符都有对应一个编号。其中前两位为“区”,后两位为“位”,中文汉字的编号区号是从16开始的,位号从1开始。前面的区号有一些符号、数字、字母、注音符号(台)、制表符、日文等等。 而GB2312编码就是基于区位码的,用双字节编码表示中文中文符号。一般编码方式是:0xA0+区号,0xA0+位号。如下表中的 “安”,区位号是1
区位码查询 区位码查询
09-28
区位码查询区位码查询区位码查询区位码查询
汉字区位码表(共收汉字6763个)
01-15
汉字区位码共收汉字6763个,分成两级。第一级汉字3755个,置于16区至55区;第二级汉字3008个,置于56区至87区。 第一级汉字按汉语拼音字母顺序排列,同音字以笔形顺序横、直、撇、点、抓为序;起笔相同按第二笔顺序,依此类推。 第二级汉字按部首排列,本表采用的部首与一般字典用的部首基本相同。部首次序及同部首字按笔划数排列,同划数的字以笔形顺序横、直、撇、点、折为序;起笔相同,按第二笔顺序,依此类推。
汉字编码珍藏版国标码
06-17
介绍了关于一些汉字编码的相关内容,汉字计算机编码指的是在计算机中表示一个汉字的编码,也叫机内码机内码编码规则涉及到与计算机ACII无关的国标码
汉字 区位码 汉字姓名区位码
03-26
汉字姓名区位码 可以找出汉字对应的区位码 好多地方用得到
汉字区位码国标码机内码
07-17
"汉字区位码国标码机内码" 汉字区位码国标码机内码计算机中文信息处理中的三个重要概念。汉字区位码是指汉字在计算机中的内部表示形式,国标码是中国国家标准局颁布的汉字编码标准,而机内码计算机内部使用...
大学计算机基础字符的编码-区位码国标码ppt课件.ppt
11-19
大学计算机基础字符的编码-区位码国标码 计算机是以二进制的形式存储和处理数据的,因此字符也必须按特定的规则进行二进制编码才能进入计算机。字符编码的方法是:首先确定需要编码的字符总数,然后将每一个字符...
汉字机内码 机内码 区位码 国标码的区别
02-28
汉字机内码国标码区位码三者之间的关系为: 1、区位码(十进制)的两个字节(前两位为一个字节,后两位为一个字节)分别加20H 得 到对应的国标码; 2、机内码是汉字交换码(国标码) 两个字节的最高位分别加1,...
区位码机内码等于国内码
06-06
这个说法是不正确的。国内码指的是汉字的内码,而区位码机内码是两种不同的编码方式。区位码是一种古老的汉字编码方式,用于表示汉字在汉字字库中的位置。机内码是指计算机内部对于字符的二进制编码。在计算机中,通常会将汉字通过一定的编码规则转换为机内码,而不是直接使用区位码。因此,区位码机内码并不等于国内码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 计算机中文编码《区位码\国标码\机内码》进阶史 19335
  • win7 错误代码 0x490 解决方法 5416
  • 埃塞俄比亚 - 阿姆哈拉语 2668
  • 波斯文书写规则 1161
  • 什么是字符基线,它的作用,以及如何调整? 1124

分类专栏

  • 软件 3篇
  • 字库 2篇
  • 编码 1篇
  • 语言 1篇
  • 小语种 2篇

最新评论

  • 在windows下轻松编辑、预览 BDF 文件

    武字天书: 关注微信公众-号:武字天书,输入“下载”,可见网盘链接。

  • 在windows下轻松编辑、预览 BDF 文件

    weixin_40432333: 你们!这个工具下载不了了,能帮忙发一份吗?谢谢!

  • 多国语言点阵字库合并!!!

    武字天书: 关注微公:武字天书, 可见详细文档和参考代码。

  • 多国语言点阵字库合并!!!

    武字天书: 软件(Guitool)是付费的,有兴趣可以关注微信公众号:武字天书,有关于字库格式说明文档,以及解析参考代码。

  • 多国语言点阵字库合并!!!

    blue.rookie: 请问下这个字库软件在哪里下载,以及支持多国语言的字库如何来索引查找

大家在看

  • Python 函数
  • 深度学习论文: Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data
  • 使用 ZoomEye 找到未启用身份验证的 Jupyter 服务器 848
  • 光大证券-放量恰是入市时:成交量择时初探
  • 2024年华为OD机试真题-反射计数-C++-OD统一考试(C卷D卷)

最新文章

  • 如何制定一个“更好”的点阵字库格式
  • 矢量字体合并《注意事项》
  • 点阵字库怎样才能做到字符显示更紧凑?
2021年14篇
2019年1篇
2013年1篇
2012年4篇
2011年3篇
2009年2篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武字天书

感恩有您!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司平湖关键词按天收费东莞关键词排名松岗推广网站松岗模板推广广州英文网站建设西乡seo网站推广西乡如何制作网站西乡建站永湖模板制作民治模板推广西乡网站推广工具双龙网站优化推广惠州百度竞价荷坳网站定制同乐百度标王坑梓设计公司网站大浪建站深圳网站优化按天收费吉祥百度竞价包年推广平湖网站优化按天收费永湖百度关键词包年推广坑梓网站开发沙井SEO按天扣费爱联企业网站建设坪山百度竞价大浪网站搜索优化大运外贸网站设计大运SEO按天扣费南联关键词按天收费南山网站优化按天计费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化