陆菊 发表于 2025-12-23 00:30:04

Unicode中如何表示未收录的生僻字 --浅谈IDS

Unicode中的字符结构表示
Unicode标准是一个全球普遍接受的文字编码标准,它的理想是用一个巨大的字符集来表示世界上所有的字符,这样让全球的文字交流置于同一种体系之下,避免以前出现过的不同国家不同字符集互不统一造成的乱码,极大方便了全球的电子信息交流。
汉字是Unicode标准中内容最为庞大的子字符集,与英语等不同,汉字是每个字符有自己独立的意思,因此占用的字符数量巨大。目前Unicode 17标准中有15万个字符,中日韩统一汉字就占到了10万个以上。
但是即使是收字量如此之大,目前也无法涵盖汉字的所有字符,特别是手书时代有无数种不同的汉字变体或自造字,因此有大量字符是目前没有收录过的。另外还有一些新造的少量字符用于科技领域。这些未收入标准中的字符,就没有规定它们的字形。那这样的字符,应该怎么在电脑或手机等文本中表示它们呢?(文本方式之外,还是有很多办法的,图片,矢量图形,特殊的文件格式表示等等,但文本是最简洁最易交流的方式,使用频繁,甚至连化学结构的表达都有人发明SMILES文本来表达)。
为了在电脑时代表示这些字符,以前用过这样的用法,比如歘字在早期的字体中不存在,为了表示这个字,我们就用文字表示为“左焱右欠”,或者是“焱欠”,这是不得已的情况下变通表示,让读者能够理解的一种无奈的方法,它的缺点就是不太好表达更为复杂的结构。
因此,Unicode中提供了一种类似的方法,英文叫做Ideographic Description Characters, 中文翻译成 表意文字描述符,通过这些表示结构的字符与汉字部件结合来表示一个字的结构。因为定义了专门的表示结构的字符,其表达能力就大大增强了。
首先看标准中提供的表示结构的专用符号(来自wiki百科)

这种表示法的结构,是先放一个结构符号,后面提供表示结构的部件。
比如前面提到的歘字,用IDS来表示表示,就是 ⿰焱欠,第一个字符表示这个字是左右结构,相当于文本描述的 左X右Y;接着是从左到右(或从上到下)的部件,分别是焱、欠。这样读者就可以明白,这个表示一个组合字, 左右结构,从左到右分别是焱和欠。
当然,有些字形比较复杂,可能由多个部件构成,需要更进一步的拆分才能表达出来,因此用IDS的表示法可以进行嵌套表示。比如焱,如果没有这个字符,这种品字型的结构,可以把它拆分为上下结构,下部继续拆解为左右结构。因此 ⿰焱欠 可以继续写成
⿰⿱火⿰火火欠。
这种结构的解析顺序,从左到右,没有括号来表达优先级。上面这串字符,按从左到右解读,意思是说,整个字是左右结构(⿰);左边是上下结构(⿱),上面部件是火字,左边下面部件是左右组合的结构(⿰火火)。最后,右边是个欠字。
解读时要特别注意表示的结构中有几个部件,后面就要对应消耗几个部件。上例中,左边上部消耗一个火字,下面是左右结构,又消耗两个火字。最后剩下的欠字,对应着左右结构中的右边部件。
你肯定能明白,拆解的粒度与方法并不一定是唯一的,选择的部件也未必是唯一的,只要能准确表示结构就行。
这种表示方法开始用时,如果结构比如复杂可能不太好懂,需要多练习一下。为了方便练习,有个网站zi.tools提供了这种表示法的练习工具。有意思的是,这个网站还提供了检索具有特定结构的字符的功能,贴个图大家就很容易明白了,用?代表搜索的部件即可。

这里隐藏了一个问题,即这些表示结构的符号如何输入,最简单的方法就是你在zi.tools这个网站上把字拆好,然后把右边的框内生成的文字复制过来。我猜测一般的输入法应该不包括这种不太常用的符号。

最后,展示一下
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

旱由 发表于 2025-12-23 23:59:39

感谢发布原创作品,程序园因你更精彩

简千叶 发表于 2025-12-25 13:03:14

前排留名,哈哈哈

章海 发表于 2026-1-14 21:25:00

新版吗?好像是停更了吧。

幌斛者 发表于 2026-1-15 17:04:30

感谢分享,下载保存了,貌似很强大

缢闸 发表于 2026-1-18 08:14:16

yyds。多谢分享

艺轫 发表于 2026-1-21 11:11:22

过来提前占个楼

缄戈 发表于 2026-1-22 20:01:46

谢谢分享,试用一下

后彼 发表于 2026-1-24 23:29:01

感谢发布原创作品,程序园因你更精彩

凉砧掌 发表于 2026-1-27 02:26:42

鼓励转贴优秀软件安全工具和文档!

毋献仪 发表于 2026-1-27 08:14:16

yyds。多谢分享

丘娅楠 发表于 2026-1-29 20:44:51

东西不错很实用谢谢分享

闻成 发表于 2026-2-4 11:44:26

不错,里面软件多更新就更好了

战匈琼 发表于 2026-2-8 04:16:40

感谢发布原创作品,程序园因你更精彩

稼布欤 发表于 2026-2-9 11:24:21

yyds。多谢分享

决台 发表于 2026-2-10 06:09:43

东西不错很实用谢谢分享

百谖夷 发表于 2026-2-10 12:58:38

这个好,看起来很实用

碣滥 发表于 2026-2-10 16:59:46

感谢分享,学习下。

劳怡月 发表于 2026-2-12 05:16:36

感谢分享,学习下。

溜椎干 发表于 2026-2-12 10:43:29

热心回复!
页: [1] 2
查看完整版本: Unicode中如何表示未收录的生僻字 --浅谈IDS