加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 网络学院 > 软件技巧

极点郑码输入法码表转换|linux ibus 郑码码表制作

时间:2021-11-10 00:11:22  来源:  作者:phpsrc.com
极点郑码输入法码表转换|linux ibus 码表制作

极点郑码输入法码表转换|linux ibus 码表制作

极点郑码输入法码表转换|linux ibus 码表制作
极点导出的郑码码表:



用多多码表编辑器转换码表





选中“极点格式”



分别导出图上所列几种码表格式,观察一下各码表格式上的区别











这几种只有win格式和多多格式是字词在前,编码在后的。

相比选多多格式可能更贴近ibus字库格式。

参照 ibus 模板 /usr/share/ibus-table/tables/template.txt

具体格式可参考这篇文章:http://phpsrc.com/os/linux/202111/81.html

把导出的码表按上述模板制作成zhengma.txt

然后在linux里把它转换成zhengma.db格式,实际上是个sqlite数据库。

下面开始安装 ibus 郑码码表
-----------------------------简版--------------------------------
 
一般 debian linux 桌面自带 ibus ,不过默认他只是拼音,没有五笔和郑码输入法。
 
我们还需要安装 ibus-table,安装好后会自动创建 /usr/share/ibus-table
 
转换码表 ibus-table-createdb -s zhengma.txt,生成zhengma.db

(后注:转换时出错,txt 文件得是UTF8编码,ANSI不行,忽略错误后「将 inser 换成insert or ignore」将 db 导入到 ibus 也不行,也不清楚是不是后面所说的权限的问题,实在折腾太多时间,不想再浪费青春了,直接百度一张 能用到 ibus 的郑码码表。需要的可以给我发邮件索取bigcache@mail.ru)
 
cp zhengma.db /usr/share/ibus-table/table
 
配置:在 ibus 里配置添加郑码,在系统设置-区域与语言,设置添加郑。
root 用户好像只在 ibus 里添加郑码就行了。然后郑码就出现在 ibus 输入法列表里了。
 
这里也出了小插曲,debian 普通用户安装好郑码码表后,只能打出拼音,根本打不出郑码。
 
我折腾了很久,最开始以为码表有问题。无意中在 VMware 里的 ibus 用同一码表安装成功了。
 
然后就开始对比笔记本上的 debian 和 vmware 里 debian ibus  的区别。
 
操作系统都是同一 ISO 镜像,系统肯定没问题,又对比了 ibus 版本,也是一模一样,还对比了 ibus 已安装的相关组件,不多不少,也是一样,那什么笔记本 ibus  就打不出郑码呢?难道桌面系统不一样?
vmware 里 debian 直接用的root 用户登录的桌面系统,会不会跟这有关系。然后在笔记本电脑上,也切换了 root 用户。
 
Ctrl + Alt + F2   还是 F1 我忘了,切换到命令模式, su 切换 root , startx 启动 root 桌面。发现 ibus 输入法列表并没有郑码,于是重新配置, ibus-setup 打开配置,添加。最终输入法列表出现了郑码,切换后打字试试,还真行,终于可以打出郑码了。看来不是码表的问题,而是权限相关的问题。
 
Ctrl + Alt + F2  或 Ctrl + Alt + F1可以在两个已登录用户的桌面环境切换。
 
再换回普通用户,也可以打出郑码了!!
 
 
--------------------------------------以下详细操作,仅供参考-------------------------------------
 
#ibus-setup
打开Ibus 首选项
 
 
mkdir /usr/share/ibus-table
root@cyberking:/home/king# mkdir /usr/share/ibus-table/tables/
root@cyberking:/home/king# mkdir /usr/share/ibus-table/icons
cp /usr/share/ibus-libpinyin/icons/* /usr/share/ibus-table/icons
 
ibus-table-createdb -s freezm.txt
bash: ibus-table-createdb:未找到命令
 
 
root@cyberking:/home/king# apt list ibus*
正在列表... 完成
ibus-anthy-dev/stable 1.5.12-2 amd64
ibus-anthy/stable 1.5.12-2 amd64
ibus-array/stable 0.2.2-1 amd64
ibus-avro/stable 1.2-2 all
ibus-braille/stable 0.3-6 all
ibus-cangjie/stable 2.4-4 all
ibus-chewing/stable 1.6.1-1 amd64
ibus-clutter/stable 0.0+git20090728.a936bacf-7 amd64
ibus-data/stable,now 1.5.23-2 all [已安装,自动]
ibus-doc/stable 1.5.23-2 all
ibus-gtk3/stable,now 1.5.23-2 amd64 [已安装,自动]
ibus-gtk/stable,now 1.5.23-2 amd64 [已安装,自动]
ibus-hangul/stable 1.5.4-1+b1 amd64
ibus-input-pad/stable 1.4.2-2 amd64
ibus-keyman/stable 11.0.103-4 amd64
ibus-kkc/stable 1.5.22-2 amd64
ibus-kmfl/stable 11.0.101-1 amd64
ibus-libpinyin/stable,now 1.12.0-3 amd64 [已安装,自动]
ibus-libthai/stable 0.1.4-6 amd64
ibus-libzhuyin/stable 1.10.0-1 amd64
ibus-m17n/stable 1.4.3-1 amd64
ibus-mozc/stable 2.26.4220.100+dfsg-4 amd64
ibus-pinyin/stable 1.5.0-6.1+b1 amd64
ibus-rime/stable 1.4.0-5 amd64
ibus-skk/stable 1.4.3-1 amd64
ibus-sunpinyin/stable 2.0.3+git20181120-5 amd64
ibus-table-array30/stable 1.8.2-3 all
ibus-table-cangjie-big/stable 1.8.2-3 all
ibus-table-cangjie3/stable 1.8.2-3 all
ibus-table-cangjie5/stable 1.8.2-3 all
ibus-table-cangjie/stable 1.8.2-3 all
ibus-table-cantonese/stable 1.8.2-3 all
ibus-table-cantonhk/stable 1.8.2-3 all
ibus-table-cns11643/stable 1.3.11-2 all
ibus-table-compose/stable 1.3.11-2 all
ibus-table-easy-big/stable 1.8.2-3 all
ibus-table-easy/stable 1.8.2-3 all
ibus-table-emoji/stable 1.3.11-2 all
ibus-table-erbi-qs/stable 1.8.2-3 all
ibus-table-erbi/stable 1.8.2-3 all
ibus-table-extraphrase/stable 1.3.9.20110826-3 amd64
ibus-table-ipa-x-sampa/stable 1.3.11-2 all
ibus-table-jyutping/stable 1.8.2-3 all
ibus-table-latex/stable 1.3.11-2 all
ibus-table-old-hungarian-rovas/stable 1.3.11-2 all
ibus-table-quick-classic/stable 1.8.2-3 all
ibus-table-quick3/stable 1.8.2-3 all
ibus-table-quick5/stable 1.8.2-3 all
ibus-table-quick/stable 1.8.2-3 all
ibus-table-rustrad/stable 1.3.11-2 all
ibus-table-scj6/stable 1.8.2-3 all
ibus-table-stroke5/stable 1.8.2-3 all
ibus-table-telex/stable 1.3.11-2 all
ibus-table-thai/stable 1.3.11-2 all
ibus-table-translit-ua/stable 1.3.11-2 all
ibus-table-translit/stable 1.3.11-2 all
ibus-table-viqr/stable 1.3.11-2 all
ibus-table-vni/stable 1.3.11-2 all
ibus-table-wu/stable 1.8.2-3 all
ibus-table-wubi/stable 1.8.2-3 all
ibus-table-yawerty/stable 1.3.11-2 all
ibus-table-yong/stable 1.8.2-3 all
ibus-table/stable 1.12.3-1 all
ibus-tests/stable 1.5.23-2 amd64
ibus-typing-booster/stable 2.10.5-1 all
ibus-unikey/stable 0.7.0~beta1-1 amd64
ibus-wayland/stable 1.5.23-2 amd64
ibus-zhuyin/stable 0.1.0-2 amd64
ibus/stable,now 1.5.23-2 amd64 [已安装,自动]
 
 
 
root@cyberking:/home/king# apt install ibus-table
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                
建议安装:
  ibus-table-array30 ibus-table-cangjie ibus-table-cangjie-big
  ibus-table-cangjie3 ibus-table-cangjie5 ibus-table-cantonese
  ibus-table-cantonhk ibus-table-cns11643 ibus-table-compose ibus-table-easy
  ibus-table-easy-big ibus-table-emoji ibus-table-erbi ibus-table-erbi-qs
  ibus-table-ipa-x-sampa ibus-table-jyutping ibus-table-latex ibus-table-quick
  ibus-table-quick-classic ibus-table-quick3 ibus-table-quick5
  ibus-table-rustrad ibus-table-scj6 ibus-table-stroke5 ibus-table-thai
  ibus-table-translit ibus-table-translit-ua ibus-table-viqr ibus-table-wu
  ibus-table-wubi ibus-table-yawerty ibus-table-yong
下列【新】软件包将被安装:
  ibus-table
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 1,012 kB 的归档。
解压缩后会消耗 1,844 kB 的额外空间。
获取:1 http://mirrors.ustc.edu.cn/debian bullseye/main amd64 ibus-table all 1.12.3-1 [1,012 kB]
已下载 1,012 kB,耗时 3秒 (325 kB/s)
正在选中未选择的软件包 ibus-table。
(正在读取数据库 ... 系统当前共安装有 464042 个文件和目录。)
准备解压 .../ibus-table_1.12.3-1_all.deb  ...
正在解压 ibus-table (1.12.3-1) ...
正在设置 ibus-table (1.12.3-1) ...
正在处理用于 desktop-file-utils (0.26-1) 的触发器 ...
正在处理用于 gnome-menus (3.36.0-1) 的触发器 ...
正在处理用于 libglib2.0-0:amd64 (2.66.8-1) 的触发器 ...
正在处理用于 man-db (2.9.4-2) 的触发器 ...
正在处理用于 mailcap (3.69) 的触发器 ...
 
 
root@cyberking:/home/king# ibus-table-createdb -s freezm.txt
Traceback (most recent call last):
  File "/usr/share/ibus-table/engine/tabcreatedb.py", line 503, in <module>
    main()
  File "/usr/share/ibus-table/engine/tabcreatedb.py", line 394, in main
    source = open(_OPTIONS.source, mode='r', encoding='UTF-8').read()
  File "/usr/lib/python3.9/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
 

纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。

 
oot@cyberking:/home/king# ibus-table-createdb -s freezm_ibus_unix_utf8.txt
Unexpected error in add_goucima().
Traceback (most recent call last):
  File "/usr/share/ibus-table/engine/tabsqlitedb.py", line 859, in add_goucima
    self.db.executemany(sqlstr, sqlargs)
sqlite3.IntegrityError: UNIQUE constraint failed: goucima.zi
放弃!
 
 
root@cyberking:/home/king# apt install ibus-table-yong
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                
下列【新】软件包将被安装:
  ibus-table-yong
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 552 kB 的归档。
解压缩后会消耗 1,802 kB 的额外空间。
获取:1 http://mirrors.ustc.edu.cn/debian bullseye/main amd64 ibus-table-yong all 1.8.2-3 [552 kB]
已下载 552 kB,耗时 3秒 (200 kB/s)     
正在选中未选择的软件包 ibus-table-yong。
(正在读取数据库 ... 系统当前共安装有 464112 个文件和目录。)
准备解压 .../ibus-table-yong_1.8.2-3_all.deb  ...
正在解压 ibus-table-yong (1.8.2-3) ...
正在设置 ibus-table-yong (1.8.2-3) ...
 
 
发现 ubuntun 论坛上的模板与安装程序不一致
 
ing@cyberking:~$ ibus-table-createdb -s zhengma.txt
Unexpected error in add_goucima().
Traceback (most recent call last):
  File "/usr/share/ibus-table/engine/tabsqlitedb.py", line 859, in add_goucima
    self.db.executemany(sqlstr, sqlargs)
sqlite3.IntegrityError: UNIQUE constraint failed: goucima.zi
 
sqlite报错:
sqlite3.IntegrityError: UNIQUE constraint failed: IMAGESTATUE.ID
解决方案:
Change INSERT to INSERT OR IGNORE
 
成功了。
 
cp zhengma.db /usr/share/ibus-table/tables/
 
 
ibus-table-createdb -s zhengma_less.txt
 
cp zhengma_less.db /usr/share/ibus-table/tables/
 
ibus restart
无法连接 IBus。
//可能是普通用户开机未启动 ibus  ,切换 root 用户,以  root 用户进一次桌面系统,配置一下 ibus 就行了,命令 ibus-setup
 
 
ibus-setup
启动 ibus 配置选项
 
 
 
 

 
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门