Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

求有空的程序员朋友写一个五笔编码编辑与查询软件 #1

Closed
CNMan opened this issue Sep 19, 2018 · 13 comments
Closed

Comments

@CNMan
Copy link
Owner

CNMan commented Sep 19, 2018

v2ex也有发,在这里再整理一下:

先说一下:无偿,请不要喷我。也不要在此讨论五笔各版本及其与拼音、手写等其他输入法的优劣、存亡等。

我在做新世纪版五笔字型 Unicode CJK 超大字符集编码数据库,9 月底应该能完成 Unicode 11.0.0 全部 CJK 字符的初校。7.17 项目开始,已持续 2 个月了,过程相当枯燥、苦逼...

最近在想,如果把前辈们已经搞完的 86 版、98 版编码放在一起,互相借鉴、印证,该是多好的的一件事。但我不会编程,才来求助各位。

软件初衷的使用对象是五笔编码编、校人员,所以功能上“编辑”为主,“查询”为次。

五笔是形码输入法,字形决定编码,编码校对时应包括“字形校对”和“编码校对”,其中“字形校对”尤为重要。由于Unicode采用的“认同”体系,中国大陆、中国港/澳/台、日本、韩/朝、越南等东亚地区的汉字字形各不相同。同时,国标“正形”后的标准字形与Unicode标准字形也有差异,需要仔细校对。目前的校对基本使用记事本等文本编辑器,只能设定单一字体,字形差异不容易被发现,因此五笔编码编、校软件应支持同时展示多种字体字形来解决这个重要问题。

除去字形,笔顺也是极为重要的一环。键外字拆分规则:书写顺序、取大优先、兼顾直观、能连不交、能散不连。第一条就与笔顺相关,可惜王码五笔并不是完全按照中国大陆笔顺规范编码,部分汉字是按照中国台湾笔顺编码的。作为用户主要在中国大陆的五笔输入法,个人认为应统一按照中国大陆笔顺规范来编码。

现在不比 10 来年前 86、98 版超大字符集编码时有很多人参与,后来增加的 CJK 字符编码基本都靠个人之力完成,三个版本也就主要是三个人而已。

当然,查询功能适用所有五笔用户,目前也有同类软件、APP、网页等,还能显示拆分结构等更多信息,但字符集基本都是 GBK 或 GB18030-2000 ( CJK+CJK-A )

软件的需求大致如下:

GUI 草图

数据源

https://github.com/CNMan/UnicodeCJK-WuBi

txt 编码:UTF-8

txt 格式:

第一列:Unicode 编码
第二列:Unicode 字符
第三列:86 版五笔字型编码
第四列:98 版五笔字型编码
第五列:06 版五笔字型编码
第六列:中国大陆笔顺
第七列:中国台湾笔顺

txt 列分隔符:,

软件数据库应直接采用本项目的CJK*.txt文本

字形展示

为避免系统Fallback导致字形错乱,软件采用 BabelMap 导出的字体图片展示字形

字形图片展示区应可以同步展示多种字形,包括:中国大陆字形、中国台港澳字形、日本字形

字体图形框:90*90 px,居中显示,不缩放,无背景色

字形图片文件名格式统一为 U_XXXXXX.png(或gif)( XXXXXX 为大写的 6 位 Unicode 编码,不足 6 位则前面补 0 )

字形图片文件按平面分文件夹存放,软件应根据Unicode编码所在平面查找对应的图片进行展示

字形文件夹对应表格如下:

U_编码 平面
00XXXX Plane00
01XXXX Plane01
02XXXX Plane02
03XXXX Plane03
0EXXXX Plane14
0FXXXX Plane15
10XXXX Plane16

以下9种字体的48 pt PNG格式图片已全部添加到UnicodeCJK-FontGlyphs

中易宋体:部分支持到 CJK-E ( 74712 字/图),中国大陆字形
中华书局宋体:支持到 CJK-F ( 87870 字/图),中国大陆字形
汉仪字典宋:支持到 CJK-B ( 70195 字/图),中国大陆字形
汉仪仿宋:支持到 CJK-D ( 74574 字/图),中国大陆字形
方正楷体S-超大字符集:支持到 CJK-B ( 70217 字/图),中国大陆字形
细明体:支持到 CJK-D ( 74594 字/图),中国台湾字形
细明体_HKSCS:支持到 CJK-D ( 74594 字/图),中国香港字形
方正楷体T-超大字符集:支持到 CJK-B ( 70217 字/图),中国台港澳字形
花园明朝:支持到 CJK-F ( 87870 字/图),日本字形

查询框

  • 支持按 Unicode 编码查询

支持小写自动转大写

支持四位、五位、六位 Unicode 编码

  • 支持按字符查询

上一个、下一个

顺序为Unicode编码顺序

修改、编辑、保存按钮

按下“修改按钮”后,编码区变为可编辑状态,“修改按钮”变为“保存按钮”,也可以分开

数据保存格式

将结果直接保存到相应的源 txt

多谢!

@nobodxbodon
Copy link
Collaborator

打算在CNMan/UnicodeCJK-WuBi06#20 基础上作一点改进. 一些业务问题(个人不是五笔用户, 所以问题小白请见谅):

"9 月底应该能完成 Unicode 11.0.0 全部 CJK 字符的初校"

  • 请问校验出的成品的用途是?
  • 这个工具在初校之后在哪些情况下还有用呢?

@CNMan
Copy link
Owner Author

CNMan commented Sep 25, 2018

本项目成品就是一个Unicode字符对应五笔编码的基础数据库,现实意义就是所有Unicode汉字能用五笔输入。

五笔编码编校是长期行为,并非单次校对所能完成。

  • Unicode会不断增加汉字
  • 国家标准会不断对汉字“正形”

@nobodxbodon
Copy link
Collaborator

现实意义就是所有Unicode汉字能用五笔输入

就是说, 这个数据库的目的是确保, 所有unicode的汉字能够用最新的五笔编码正确输入?

还有几个问题:

  • 86版和98版的五笔编码还需修改吗?
  • 关于“字形校对”, 假如同一个unicode编码, 各个地区的字形不同, 或者国标正形了, 那么需要如何更新这个字符的数据呢? 可否麻烦举个例子?

@CNMan
Copy link
Owner Author

CNMan commented Sep 25, 2018

就是说, 这个数据库的目的是确保, 所有unicode的汉字能够用最新的五笔编码正确输入?

是的

86版和98版的五笔编码还需修改吗?

需要

关于“字形校对”, 假如同一个unicode编码, 各个地区的字形不同, 或者国标正形了, 那么需要如何更新这个字符的数据呢? 可否麻烦举个例子?

u_009fc5_ns
u_009fc5_nse
GB/T 22321.1-2018 信息技术 中文编码字符集 汉字48点阵字型 第1部分:宋体
发布日期2018-06-07,实施日期2019-01-01
最新国标字形是第一个,新世纪编码就要从pyfb改为pyfc

CNMan pushed a commit that referenced this issue Sep 26, 2018
add FZKaiS and FZKaiT FontGlyphs
CNMan added a commit that referenced this issue Sep 27, 2018
CNMan added a commit that referenced this issue Sep 27, 2018
@nobodxbodon
Copy link
Collaborator

刚重构了一下, 如打算改进请同步一下. 经测试可以修改缺失的域:
screen shot 2018-09-28 at 12 18 40 pm

@nobodxbodon
Copy link
Collaborator

为避免修改多字之后忘记导出, 感觉最好是每次"修改"之后就自动保存到字符原来所处的CJK-*文件, 也就不用"导出文件"了. 这样是否合适?

另外还缺的功能:

@CNMan
Copy link
Owner Author

CNMan commented Sep 28, 2018

为避免修改多字之后忘记导出, 感觉最好是每次"修改"之后就自动保存到字符原来所处的CJK-*文件, 也就不用"导出文件"了. 这样是否合适?

需求就是保存到源文件,这样就不用二次处理了,能修改后自动保存当然更好了

@nobodxbodon
Copy link
Collaborator

能修改后自动保存当然更好了

点击"修改"后, 修改了字符所在的源数据文件: screen shot 2018-09-29 at 12 23 13 am

按照github文档, 修改git配置如下:

git config --global core.autocrlf input

之后git diff输出看起来正确:

$ git diff
warning: CRLF will be replaced by LF in CJK-B.txt.
The file will have its original line endings in your working directory.
diff --git a/CJK-B.txt b/CJK-B.txt
index 674fe9c..83482c1 100644
--- a/CJK-B.txt
+++ b/CJK-B.txt
@@ -1,4 +1,4 @@
-20000,𠀀,ghab,ghab,ghab,
+20000,𠀀,ghab,gha,ghab,
 20001,𠀁,gnv,gnv,gnv,
 20002,𠀂,gnb,gnb,gnb,
 20003,𠀃,mgd,mgd,mgd,

如果不改autocrlf, git diff显示所有行都被修改, 行尾加了^M. 没找到更好的解决方法.

@nobodxbodon
Copy link
Collaborator

program-in-chinese/wubi_code_editor@abe3a87 添加支持按字搜索:
screen shot 2018-09-29 at 2 22 46 pm

@CNMan
Copy link
Owner Author

CNMan commented Sep 29, 2018

辛苦,离目标又跨近一步

明天打算加第七列数据:中国台湾笔顺
现有笔顺需要改成:中国大陆笔顺

update:爬起来处理了一下数据,已更新上
screenshot

@nobodxbodon
Copy link
Collaborator

改进:

  • 显示字符所在文件(区)
  • 如果笔顺为空, 显示'无'

另外, unicode搜索框不用大写.
screen shot 2018-09-30 at 11 06 27 pm

如有后续问题请在https://github.com/program-in-chinese/wubi_code_editor 开issue. 就不再watch这个repo了.

@nobodxbodon
Copy link
Collaborator

@CNMan 基于这个想法, 尝试开了个repo. 如果有其他项目, 或者熟人的类似项目, 万一需要咨询, 请介绍到那里开issue. 不能保证都能像这个项目一样落实到实现, 但至少会尽量搭桥或者提点建议或分享点经验(组里从事各方面开发的都有一些).

@CNMan
Copy link
Owner Author

CNMan commented Oct 1, 2018

@nobodxbodon

如有后续问题请在https://github.com/program-in-chinese/wubi_code_editor 开issue. 就不再watch这个repo了.

好的,多谢了

基于这个想法, 尝试开了个repo. 如果有其他项目, 或者熟人的类似项目, 万一需要咨询, 请介绍到那里开issue. 不能保证都能像这个项目一样落实到实现, 但至少会尽量搭桥或者提点建议或分享点经验(组里从事各方面开发的都有一些).

这真是不会编程但又有编程需求的人群的福音

@CNMan CNMan closed this as completed Jan 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants