趣味科普 · 汉字编码原来这么好玩

不需要懂技术,也能看懂汉字编码那些事儿。下面有冷知识、常见问答和小故事,帮你轻松理解“汉字身份证”。

🎲 随机冷知识

点击“换一条”随机显示一条汉字编码冷知识。

✨ 15条趣味冷知识
• 冷知识1:GB2312一级汉字按拼音排序,只因当年打字机翻页太麻烦。
• 冷知识2:陕西名吃"biángbiáng面"的biáng字,2020年才正式入编Unicode。
• 冷知识3:Unicode里笔画最多的"𪚥"字足足64画,写完等于做手部健身。
• 冷知识4:你看到"□"不代表字不存在,只是电脑字体库里没它的照片。
• 冷知识5:中日韩的"艺"字共用同一个编码,但各国字体里的长相并不同。
• 冷知识6:最新国标GB18030收了近9万汉字,连古籍里的生僻字也能上户口。
• 冷知识7:GB2312只收了6763个常用字,却承包了你一生中99.75%的阅读量。
• 冷知识8:同一个汉字能一键"换脸",变体选择符可调出不同历史时期的写法。
• 冷知识9:没入编前,"biáng"字只能靠横竖撇捺像拼乐高一样现场组装。
• 冷知识10:GBK是GB2312的"亲儿子",老户口本上的字一个没丢,还加了新房。
• 冷知识11:有人名字上了编码"户口",却因电脑没装字体,在系统里成了黑户。
• 冷知识12:两万多个常用汉字全挤在BMP"小区"里,后面的扩展区都是豪宅。
• 冷知识13:越南古代也用汉字,在Unicode里和中国字共用同一张"身份证"。
• 冷知识14:GB2312二级字不按拼音,而是按部首排队,就像字典里的难检字表。
• 冷知识15:越生僻的汉字在Unicode里住得越偏远,从B区一路排到H区,现在又有了J区。
📖 汉字编码小故事
📖 户口本成长记
1980年,GB2312像一本薄薄的居民户口本,只收进6763个常用简体字...1995年GBK扩容到21003字,直到2022年GB18030登场,像厚重的国家大典收录87887字,连古籍里的冷门字都上了户口。
🍜 biáng字的全球身份证
陕西街头的"biángbiáng面"招牌上,那个56画的"biáng"字长期是"黑户"。直到2020年,Unicode 13.0给它颁发了全球身份证U+30EDD,这个最难写的面名,终于在数字世界有了正式户口。
🖼️ 有身份证却没有照片的“𪚥”
"𪚥"(zhé)字有64画,是Unicode里笔画最多的汉字,早就领到了编号U+2A6A5。可它太冷门,大多数电脑字体库里没有它的照片,于是屏幕上只有一个冷冰冰的"□"。
🧩 动态组字技术详解
什么是动态组字?
动态组字是一种不依赖预先绘制的完整字形,而是通过描述汉字的结构(如上下、左右、包围等)和部件,实时生成汉字的技术。它特别适用于超大字符集、生僻字、古籍用字。
示例:biáng 字的 IDS 描述与拼装
biáng字动态组字图解

图:biáng 字的 IDS 部件拆解与动态组装示意

解释:
- ⿺ 表示左下包围结构(辶 包围右边部分)
- ⿳ 表示上下结构(穴 在顶部)
- ⿲ 表示左中右结构(月、⿱⿲幺言幺⿲長馬長、刂 并排)
- ⿱ 表示上下结构(幺言幺 在上,⿲長馬長 在下)
通过这种嵌套描述,计算机可以动态组装出这个复杂汉字。

动态组字的优点:无需为每个生僻字预先制作字体,节省存储空间;支持无限扩展;便于古籍数字化。目前主流字体渲染引擎(如 HarfBuzz)已支持部分 IDS 渲染,但完整应用仍需进一步优化。

💬 25个常见问答 · 你想知道的都在这里
❓ 为什么电脑里的每个字都需要一个"身份证号"?

就像每个人有唯一的身份证号,每个汉字也需要一个独一无二的数字编号,这样电脑才能认得出、找得到、存得下。

❓ 同一个“马”字,在宋体和黑体里长得不一样,它们算同一个字吗?

算。就像你拍证件照和自拍都是同一个人,只是照片风格不同。

❓ 什么是“豆腐块”?为什么我遇到生僻字就显示这个?

“豆腐块”(□)就像照片墙上的空白相框。电脑知道这里有个人(有编码),但相册里没这个人的照片(没字体)。

❓ 为什么中日韩三国汉字要共用一个编码?不会乱套吗?

因为它们的“血缘”相同,就像同卵三胞胎共用一个基因编号。虽然各国写法有细微差别,但电脑先认“人”(编码),再换“衣服”(字体)来区分。

❓ 动态组字是什么?像拼乐高一样吗?

对,就像拼乐高。不提前造好所有字的模型,而是把横竖撇捺当成积木,需要哪个字就现场拼一个。

❓ 为什么古籍数字化特别难?

古书里很多字是“古代生僻字”,现代户口本(GB2312)里根本没有。得用最大的“世界户口本”(Unicode扩展区)才能找到它们。

❓ 笔画最多的汉字是哪个?有多少画?

是“𪚥”(zhé)字,有64画。它虽然上了户口(有编码),但大多数手机和电脑没装它的照片。

❓ 怎么才能让我的电脑显示那些生僻字?

得安装“大相册”字体,比如Noto CJK、花园明朝这种收录了几万字的字体包。

❓ 为什么有些字在搜索引擎里搜不到?

因为搜索引擎的“识字能力”取决于它用的户口本大小。如果它只认GB2312的6763个字,超出这个范围的字就像查无此人。

❓ GB2312是什么?跟我有什么关系?

这是1980年定的“简体字常用名单”,就像最早的居民户口本,只收录了6763个最常用的简体字。

❓ 现在最新的国家标准是什么?为什么强制要求?

叫GB18030-2022,是目前最大的“汉字户口本”,收录了近9万个字。国家强制要求就像规定所有官方系统必须支持新版身份证。

❓ 变体选择符是什么?同一个字还能选造型?

就像同一个演员有古装照和现代照。有些字在古代有不同写法(异体字),共用同一个身份证号,后面加个“选片码”。

❓ 为什么手机/电脑有的古汉字显示成方框、问号?

因为这个古汉字的“数字身份证”,你的手机/电脑没收录(或者字库不支持),就像不认识这个人的身份证。

❓ 人名、地名里的生僻字,为什么打不出来?

要么是这个生僻字没进“常用花名册”,要么是输入法没更新,找不到它的“身份证”。

❓ 同样一个字,繁简、异体写法不一样,电脑怎么知道是同一个字?

我们给这些“意思一样、写法不同”的汉字,绑定了同一个“核心身份证”,不管写法怎么变,电脑都能识别出它们是“一家人”。

❓ 古籍里的避讳字、合文(两个字合写),怎么存进电脑?

避讳字我们给它编专属身份证,同时记录它的原始字形和避讳原因;合文就用“拼积木”技术,把两个字的部件组合起来,生成临时编码。

❓ 为什么复制古籍文字,有时候会乱码?

因为古籍文字的“身份证”,和你当前软件的“身份证规则”不匹配,就像不同地区的身份证,没法互相识别。

❓ 一个房间挤了好几个人(一码多字),怎么分清谁是谁?

早期字符集容量不足,一个编码位置可能塞了好几个不同的汉字。现在可以根据读音、部首、使用朝代、古籍出处等特征自动判断。

❓ 长得一模一样的两个字,怎么区分?(同形异字)

不看外表,看出身年代、使用场合、古文出处。电脑根据前后词语就能分清。

❓ 意思一样、写法不同的字(同义异形),怎么归为一家人?

我们构建了一个“同义异形字大数据词表”,输入任意一种写法,都能自动匹配全部同义异体写法。

❓ 为什么GB18030分三个实现级别?

就像买房分精装、简装、毛坯。级别1保证最常用的字不显示方块;级别2加上繁体和生僻字;级别3是顶配。

❓ 普通人需要了解这些编码知识吗?

不用记细节,但要知道“方块=没照片,不是没这个字”。遇到生僻字问题,知道该换字体或升级系统就够了。

❓ Unicode 和 GB18030 是什么关系?

Unicode 是全球通用的“世界户口本”,GB18030 是中国的“国家户口本”。两者可以互相转换。

❓ 未来生僻字问题会彻底解决吗?

随着 GB18030-2022 的强制推行和 Unicode 的不断更新,越来越多生僻字会有正式“身份证”。同时“动态组字”技术也在发展。