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

Unicode中的字符结构表示

Unicode标准是一个全球普遍接受的文字编码标准,它的理想是用一个巨大的字符集来表示世界上所有的字符,这样让全球的文字交流置于同一种体系之下,避免以前出现过的不同国家不同字符集互不统一造成的乱码,极大方便了全球的电子信息交流。

汉字是Unicode标准中内容最为庞大的子字符集,与英语等不同,汉字是每个字符有自己独立的意思,因此占用的字符数量巨大。目前Unicode 17标准中有15万个字符,中日韩统一汉字就占到了10万个以上。

但是即使是收字量如此之大,目前也无法涵盖汉字的所有字符,特别是手书时代有无数种不同的汉字变体或自造字,因此有大量字符是目前没有收录过的。另外还有一些新造的少量字符用于科技领域。这些未收入标准中的字符,就没有规定它们的字形。那这样的字符,应该怎么在电脑或手机等文本中表示它们呢?(文本方式之外,还是有很多办法的,图片,矢量图形,特殊的文件格式表示等等,但文本是最简洁最易交流的方式,使用频繁,甚至连化学结构的表达都有人发明SMILES文本来表达)。

为了在电脑时代表示这些字符,以前用过这样的用法,比如歘字在早期的字体中不存在,为了表示这个字,我们就用文字表示为"左焱右欠",或者是"焱欠",这是不得已的情况下变通表示,让读者能够理解的一种无奈的方法。

Unicode中也提供了一种类似的方法,英文叫做Ideographic Description Characters, 中文翻译成 表意文字描述符,通过这些表示结构的字符与汉字部件结合来表示一个字的结构。

首先看标准中提供的表示结构的专用符号

这种表示法的结构,是先放一个结构符号,后面提供表示结构的部件。

比如前面提到的歘字,用IDS来表示表示,就是 ⿰焱欠,第一个字符表示这个字是左右结构,相当于文本描述的 左X右Y;接着是从左到右(或从上到下)的部件,分别是焱、欠。这样读者就可以明白,这个表示一个组合字, 左右结构,从左到右分别是焱和欠。

当然,有些字形比较复杂,可能由多个部件构成,需要更进一步的拆分才能表达出来,因此用IDS的表示法可以进行嵌套表示。比如焱,如果没有这个字符,这种品字型的结构,可以把它拆分为上下结构,下部继续拆解为左右结构。因此 ⿰焱欠 可以继续写成

⿰⿱火⿰火火欠。

这种结构的解析顺序,从左到右,没有括号来表达优先级。上面这串字符,按从左到右解读,意思是说,整个字是左右结构(⿰);左边是上下结构(⿱),上面部件是火字,左边下面部件是左右组合的结构(⿰火火)。最后,右边是个欠字。

解读时要特别注意表示的结构中有几个部件,后面就要对应消耗几个部件。上例中,左边上部消耗一个火字,下面是左右结构,又消耗两个火字。最后剩下的欠字,对应着左右结构中的右边部件。

这种表示方法开始用时,如果结构比如复杂可能不太好懂,需要多练习一下。为了方便练习,有个网站zi.tools提供了这种表示法的练习工具。有意思的是,这个网站还提供了检索具有特定结构的字符的功能,贴个图大家就很容易明白了,用?代表搜索的部件即可。

相关推荐
友思特 智能感知1 个月前
增材制造中的高精度过程监控与误差
制造·ids·高精度工业制造·工艺检测·视觉监测
学习溢出5 个月前
【网络安全】理解安全事件的“三分法”流程:应对警报的第一道防线
网络·安全·web安全·网络安全·ids
学习溢出8 个月前
【网络安全】Snort 使用入门:命令详解与实践指南
安全·web安全·网络安全·snort·ids
网络研究院1 年前
保护您的网络:入侵检测系统 IDS 终极指南
网络·安全·web安全·技术·入侵检测系统·未来·ids
ManageEngine卓豪1 年前
监控IDS和IPS增强网络安全性
网络安全·ips·ids
Smile灬凉城6661 年前
IPS与IDS
网络·ips·ids
是曹大大1 年前
【开发踩坑】生僻字插入MySQL失败
数据库·mysql·生僻字
聪明的小脑袋瓜儿1 年前
【面试题】IPS(入侵防御系统)和IDS(入侵检测系统)的区别
网络·安全·web安全·ips·ids
Roc-xb2 年前
支付宝生僻字选择器
javascript·html·支付宝·生僻字