首页 > 其他分享 >汉字编码新尝试:字理组字编码方案v0.0

汉字编码新尝试:字理组字编码方案v0.0

时间:2023-05-21 23:03:25浏览次数:47  
标签:字理 字型 编码 码位 可以 部件 汉字编码 编码方案

屁牌字理组字编码部件表

↑对,这就是正片↑(同步自敝知乎专栏,不定期更新)

高清(确信)版:http://farter.cn/zzdm/latest.png

不用任何教程,试试对着表解码一下:

43 295 817 146 140 113 773 723 04 331 129 217 105 883 401 185 821 14 321 471 0268 742 495 04 903 02 75 0302 674

(分区内,先行后列,02是“亻*”,20是“女*”,0-02是“虫*”,00-02是“亼/”)

尚未定稿,表与细则仍在调整,暂勿直接用于存储。

~从甲骨文出发的汉字编码~

综述

众所周知,汉字中的大多数是由偏旁部首(统称为部件)组合出来的。

字理组字,就是按照汉字字理,组合构造出来的字,可以用表里的部件组出任何“讲道理”的字。

这字是啥加啥,咋拼的,怎么表示的这个意思,我们古老的象形文字画的究竟是啥,以前是怎么写的,中间流传传抄演变的过程会不会写错了?

字有字理,但字也会变化。有分,有合,也总有些字变得不是很讲理,看不出它是啥加啥。

本表把每个部件甲骨文金文(若有)的源流到楷体印刷正体在中日朝韩越新马各国家地区的演化发展全流程纳入考虑,每个部件对应着尽量源头的写法,有理有据有根。(用的时候,你也需要考虑)

本编码期望为古籍规范数字化填坑加速,为人名地名生僻字文化保留铺平道路,为汉字发展释放造字活力扫除障碍。

本表酌情把常用而又变妈不认或者学术上仍不确定(统称有坑)的整体安排进码位,视作单体,不是一个“完全拆分到头”的字根树部件树。

本编码理论上可以用作输入法(比五笔郑码等26键形码是要硬核得多,但比电报码区位码JIS码Unicode还是更友好的,并且它由字理实现统一)。

本表也可以用作业余无线电电报码,一两张纸精炼信息搞定,而不需要整一本电码本字符集来翻。

本编码期望做字体、做输入法(尤其大字集、多地区)的开发者使用作为内码,不需要等Unicode收了你才有地方放生僻字。

本编码可以用于按规则生成相当大一部分结合时“没有不规则变化”的字的形码码表,还可以省去跟现行码表里的讹字对字形搞特殊区分码的绝大部分功夫。(重码高了不讨好,但无意义的同理异码在本编码里就不该存在)

本表实际上也是一个部件统合表、简繁类推表,力求达到异体写法(在多个层次上)分分合合的一个合理自洽的状态。

本编码甚至可能用作手写识别、机器学习古文字识别的直接目标编码,也可以作为智能动态组字源编码。你感受到了么?

但总的来说,要把本表全部掌握牢固,可能还是算半个学汉语言文字砖业的big学生了(?)

但是通读一遍,也能入个门了吧(??)

此处真情实感建议,放大全图,逐区逐字浏览一遍,再回来继续看说明。

 

如果遇到一个生僻字,组得出来(表里找到,拼就完事了,但是注意字理,里面有“!”就是有坑要小心),成了,你就用规范的组字码串表示这个字。

只需要有做字人在字型(字体文件)里以这个码串为题,添加一个对应矢量图或像素字,你用这个字型(如果有生之年我做出了这套渲染系统的文本框),输入这个码串,便可显示。

到别的地方如果用的字体文件里没有这个码串,那确实暂时不能显示,但至少可以回退显示一串部件,表示这个字是由哪些部件组成的。

如果未来智能动态组字普及了,那就不成问题了,只是显示可能暂时丑点,随着技术进步终将修好。

常见类推简化部件简繁同码,若以本编码作简体字型,自然应该是统一简体部件。(细节后述)

这样,姓名地名“常见生僻字”、方言字、民间合字、道教讳秘字、天地会秘文、减字谱、合音字、网友新造字、喃字壮字、日月干戈心zuibiang……绝大部分,都不需等待任何批准收录,就可有理有据地编码表示。(遵守一些细节规则,下述)

如果组不出来,八成是你这字有问题。如果你认为是另外两成,欢迎留言讨论【比如实在异形的方言字地名字

 

能编码出多少字呢?理论上那就是无限的,用已收录部件讲字理的前提下完全自由,你可以用你认为对的字根与部件按规则成一个码串,就固定代表那个字了。

只是这个码串可能不符合“最短最简洁”常规需要纠正,可能合规但由于没被字型收录等原因,显示不出拼好的样子而已,毕竟目前动态组字还没那么成熟。做好这个平台,推动技术成熟吧。

但是,即使码串是合法的,合不合字理另说。可以就从你在画甲骨文的角度去想象。你当然可以画一对月亮,但朋友的“朋”实际上是大鹏尾巴的一大把羽毛;你还可以画一根禾苗,两边有两个人背对着(北),但“乘椉”实际上是一个大脚人站在一棵大树顶上……

这些就是字理了,是学科专业知识,可以去网上查古文字写法,可以去书里学,慢慢积累。

类似的“有坑”部件,本表多是收为单体,直接就用的,不需要去组。需要拼的生僻字古字如果有坑,就需要专业选手来辨认鉴别了。当然,做好字表词表对接上各种现有输入法后,一般用户就不需要拼字这一步。除非,遇到了输入法字表里没收的生 僻 字,或者你想造字了。

坑本身确实对应着字理,理解记忆这些坑,就对应着真正古文字演变的知识了。

相对的,五笔郑码等实用输入法形码,其中也总会有很多例外边角特殊规则,但它们是为输入法的实用性与性能参数(重码率)而人为规定的。

完全掌握本编码方案,确实也意味着要掌握这些“例外、讹变”,但它们是有古籍古文字来源依据的,可以说是“要背也是背了真的、有意义的东西”。

基本框架

本编码只编码汉字(包括壮字喃字等基于汉字部件的),标点符号目前都还没有【可以用独立的(空)代替着先

本编码的码位是数字串不是数字,00 000 0000,98 098 0098分别都是不同的码位,变长是因为适应汉字部件本身的频率分布。

每个码位分别有是否粘左、是否粘右的属性,这里的左右粘指码串位置的退和进(粘退粘进粘前粘后,太怪了……)。码串内相邻两码位之间若左不粘右、右不粘左,则是两字的分界。

+”为包围杂合(即,任何复杂例外结合),“*左右,“/上下,“^”为优先级最高的修饰符,类似数学的符号便于理解优先级。

01<⿰> 10<⿱> 11<⿴⿻> 为“结合符”(等于是“*、/、+”二元中缀运算符)左右都粘,优先级与对应的粘法(“自带结合符”)一样。两边不粘需要焊接,或者明确组合方式时才用它,多数时候不需要用

(组字举例可能是强拆的,只为示意,如果码表里已经收录为单体,则实际编码应该直接用单体)

包围(以及杂合)关系相对严格要求,只有在“如果强行不包就空一大块得报警”的情况才算包。其余情况多如只有一笔伸过去的,都算左右上下。(只在需要插结合符的情况考虑。表内预置粘右还是按照常识,如“走”标为包围结合)。例如“麻磨 䧹鹰 辰唇 石席 鹿麋”等等普遍适用本条,算上下。不然“鼠 麦”不同地区全分成两种炸了。

具体长笔画伸不伸过去随字型实现。此处插播一个“屎女屡”,就根本不是按字理拆分的。本是“尸娄”(84 536)。但如果你真想用甲骨文画一个有人在女上拉屎【那编码还是上下(0296 070)

“辶 廴 凵”还是都算包围,但是本编码选择强调规律性,牺牲今文字笔顺,编码上还是包围部在先,粘右。顺便“廴”有大坑,“凵”还真是坑,“辶”还在“徒從”等字里。

“宀 皿”算上下,虽然古时候是包围,这里还是向今文字妥协了,“齐”也统一算上下(?)。

“颖 颣 嗀 啟”形的“包围”算上下,这是最需要注意的;“戈口→戓

标签:字理,字型,编码,码位,可以,部件,汉字编码,编码方案
From: https://www.cnblogs.com/farter/p/zzdm.html

相关文章

  • 计算机中的编码和字符集:理解二进制、字节流和常见编码方案
    编码:将字符串转换到字节串的过程。解码:将字节串转换成字符串的过程。GB2312既是一种中文字符集,也是以ANSI标准为基础,实现的中文编码方案。它主要用于简体中文编码,是中国国家标准,于1981年发布。GBK是GB2312的超集。Unicode是一种字符集,定义了所有字符的唯一标识符(码点),同时......
  • 汉字编码问题(OJ 2h奋战血泪)
    永远想不到汉字的utf-8gcc编码其实是三个字符,我是在云IDE发现的.....#include<bits/stdc++.h>usingnamespacestd;//A>K>Q>J>>10>9>...>3>2structCard{ charname[10]; intcolor; intnumber; voidchange(){ if(strstr(name,"大王"))......
  • Python 中global 关键字理解
    Python中的global关键字,你了解吗?前言今天来了解下Python中的global关键字。Python变量的作用域实战案例演示之前,先要了解下Python的作用域.Python变量的作......
  • 汉字编码与编程相关问题总结:ASCII、机内码、区位码、国标码、Unicode码是如何转换的
    一、ASCII、机内码、区位码、国标码、Unicode码他们之间是如何转换的,方程式是什么汉字系统中的过程包括区位码、国标码和机内码,其中的转换关系如下:1.区位码(十进制)转......
  • C++有关class内部的static关键字理解
    变量在class中被static修饰的成员变量是可以被直接访问的,不需要实例化。并且所有实例共享同一份该变量,进而可实现单例模式。如果换个理解方式,class仅提供一个namespace......
  • unicode 汉字编码表
    unicode汉字编码表!啊:21834阿:38463埃:22467挨:25384哎:21710唉:21769哀:21696皑:30353癌:30284蔼:34108矮:30702艾:33406碍:30861爱:29233隘:38552鞍:3879......