输入法词库解析(五)极点码表.mb
前言
mb 是极点五笔的码表格式。
解析
| 偏移量 | 描述 |
|---|---|
| 0x00 | 版本信息 |
| 0x1B | 码表介绍 |
| 0x11F | 所用到的按键数 |
| 0x120 | 所用到的按键,utf-16le |
| 0x154 | 万能键 |
| 0x156 | 编码截止键 |
| 0x176 | 组词规则 |
| 0x176 | 组词规则 |
| 0x194 | 径直上屏的标点 |
| 0x1B4 | 特殊符号引导符 |
| 0x1B8 | 未知 |
| 0x1B620 左右 | 码表 |
上图选中部分解析为
五笔点儿词库2022春 QQ群313225526
生成日期:2022-3-17 18:36
所有用到的按键:
组词规则:
特殊符号引导符:
下面的部分就有规律了
每 4 个字节一组,前两个字节表示一个字符,后两个字节从 00 00 ~ 29 00,一共 41 个值(意义不明,可能是某种索引),中间有一些 FF FF FF FF
一直到 0x1B620左右,有的词库可能会相差几个字节。
下面才是词库部分。
| 占用字节数 | 描述 | |
|---|---|---|
| a | 1 | 编码长度 |
| b | 1 | 词字节长度 |
| 1 | 只有 0x64、0x32、0x10 几个值,意义不明 | |
| a | 编码,ascii | |
| b | 词,utf-16le |
代码实现(只读 0x1B620 之后的码表):
func (JidianMb) Parse(filename string) Table {
data, _ := os.ReadFile(filename)
r := bytes.NewReader(data)
ret := make(Table, 0, r.Len()>>8)
var tmp []byte
r.Seek(0x1B620, 0) // 从 0x1B620 开始读
for r.Len() > 3 {
codeLen, _ := r.ReadByte()
if codeLen == 0xff {
r.Seek(1, 1)
continue
}
wordLen, _ := r.ReadByte()
r.Seek(1, 1)
// 读编码
tmp = make([]byte, codeLen)
r.Read(tmp)
code := string(tmp)
// 读词
tmp = make([]byte, wordLen)
r.Read(tmp)
word, _ := util.Decode(tmp, "UTF-16LE")
ret = append(ret, Entry{word, code, 1})
}
return ret
}
输入法词库解析(五)极点码表.mb的更多相关文章
- 输入法词库解析(二)搜狗拼音细胞词库.scel(.qcel)
详细代码:https://github.com/cxcn/dtool 前言 .scel 是搜狗拼音输入法所使用的细胞词库格式,可以在 https://pinyin.sogou.com/dict/ 下载 ...
- 输入法词库解析(一)百度自定义方案.def
详细代码:https://github.com/cxcn/dtool 前言 .def 是百度手机输入法-更多设置-自定义输入方案所使用的格式. 解析 码表偏移量 0x6D # 占用字节数 描述 a 1 ...
- 输入法词库解析(七)微软用户自定义短语.dat
详细代码:https://github.com/cxcn/dtool 前言 微软拼音和微软五笔通用的用户自定义短语 dat 格式. 解析 前 8 个字节标识文件格式 machxudp,微软五笔的 le ...
- 输入法词库解析(六)QQ 拼音分类词库.qpyd
详细代码:https://github.com/cxcn/dtool 前言 .qpyd 是 QQ 拼音输入法 6.0 以下版本所用的词库格式,可以在 http://cdict.qq.pinyin.cn ...
- 输入法词库解析(四)百度分类词库.bdict(.bcd)
前言 .bdict 是百度的分类词库格式,可以在 https://shurufa.baidu.com/dict 下载. 手机百度的分类词库格式 .bcd 是一样的,可以在 https://mime.b ...
- 输入法词库解析(三)紫光拼音词库.uwl
详细代码:https://github.com/cxcn/dtool 前言 .uwl 是紫光拼音输入法(现在叫华宇拼音输入法)使用的词库. 解析 紫光的词库有点复杂,拼音用的索引,但是拼音表没有写在词 ...
- 用C语言将搜狗输入法词库转换成QQ拼音输入法词库
搜狗输入法词库格式: 'ni'kan'xia 你看下 'ni'kan'xia'gai'hou 你看下改后 'ni'kan'xing'ma 你看行吗 'ni'kan'zen'me'yang 你看怎么样 ...
- paip 自定义输入法多多输入法词库的备份导出以及导入
paip 自定义输入法词库的备份导出以及导入 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/ ...
- 深蓝词库转换2.5发布——支持微软五笔,支持Linux和macOS和更多命令行功能
最近利用晚上的时间,对很久没有新版本发布的深蓝词库转换进行了版本升级.本次升级主要包含的功能包括: 一.支持Win10自带的微软五笔输入法用户自定义短语的导入导出. 1.在转换输入法词库列表中选择“W ...
随机推荐
- 华为HMS Core携手超图为三维GIS注入新动能
6月30日,在2022(第五届)GIS软件技术大会GIS基础软件新技术板块论坛上,华为联合超图推出了基于HMS Core 3D Engine开发的高保真三维GIS插件,通过3D渲染技术助力三维GIS实 ...
- 北京市行政村边界shp数据/北京市乡镇边界/北京市土地利用分类数据/北京市气象数据/降雨量分布数据/太阳辐射数据
数据下载链接:数据下载链接 北京是一座有着三千多年历史的古都,在不同的朝代有着不同的称谓,大致算起来有二十多个别称.北京地势西北高.东南低.西部.北部和东北部三面环山,东南部是一片缓缓向渤海倾斜的 ...
- Solution -「Local 11145」诗意狗
0x01 前置芝士 树形结构?贪心?思维?眼睛? 好有趣... link 0x02 题目大意:给你一颗有 \(n\) 个节点的树,你需要尽可能多的删掉边,使得剩下的图中有 \(k\) 个点满足互相能走 ...
- 聊一聊 C# 后台GC 到底是怎么回事?
一:背景 写这一篇的目的主要是因为.NET领域内几本关于阐述GC方面的书,都是纯理论,所以懂得人自然懂,不懂得人也没法亲自验证,这一篇我就用 windbg + 源码 让大家眼见为实. 二:为什么要引入 ...
- 循环队列(严3.30)--------西工大NOJ习题.9
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> typedef struct _Q ...
- [极客大挑战 2019]BabySQL-1|SQL注入
1.打开题目之后,查看源代码信息,发现check.php文件,结果如下: 2.那就只能尝试登录,经测试当输入or.by.select.from.and.where等关键字时会被过滤且会被过滤为空(过滤 ...
- docker + Umami + Postgresql 网站访问分析
1 # docker + Umami + Postgresql 2 # 官方安装文档:https://umami.is/docs/install 3 # 一.创建数据库 4 # 1.创建用户 5 CR ...
- HDFS基础入门
HDFS简介 HDFS(全称:Hadoop Distribute File System)分布式文件系统,是Hadoop核心组成. HDFS中的重要概念 分块存储 HDFS中的文件在物理上是分块存储的 ...
- 点击>>>解锁Apache Hadoop Meetup 2021!
" 10月16日,属于开源发烧友的狂欢日来啦! Apache Hadoop Meetup 2021 开源大数据行业交流盛会盛大开启!让我们相约北京,一起嗨翻初秋~ 在当今信息化时代,逐渐成熟 ...
- Luogu3275 [SCOI2011]糖果 (差分约束)
逆序建超级源快十倍还行 #include <cstdio> #include <iostream> #include <cstring> #include < ...