Closed rojer12 closed 7 years ago
+1,同希望支持
+1,同希望支持
可以指教下,升级到最新版的Win10后怎么不能同步输入法了?
@yxsongbo 我意思是第三方词库的转换及导入,输入法内的词库还是可以同步的
告诉大家一个不幸的消息,Win10自带的微软拼音输入法估计有问题,无法支撑词库导入。即使我是从官网下载的词库都无法导入成功。谁有能成功导入的词库,麻烦给我一份。
@studyzy win10周年更新后,支持自定义短语了,你可以新建几个短语,然后导出,查看规律,直接打开导出的文件,显示乱码,估计混淆过了
win10的微软拼音使用的数据格式与微软拼音2010完全不同,win10内置的微软拼音是重新开发版,win10 1607内的微软拼音导出的自定义短语文件不是文本文件,是二进制文件。
windows 10输入法的开发人员不足,只能随着后续系统版本的更新逐渐加入新功能,批量导入词库及自定义双拼方案的功能也在开发中,可能会在windows rs2登场
个人猜测,自定义短语导出的二进制文件是微软拼音输入法里某个对象的序列化文件,可能是编程语言里的某个对象直接序列化写入磁盘后的结果,没必要多作分析,还是等微软后续加入导入词库功能吧
暂时也没精力去分析这个二进制格式,还是等下一版微软拼音能否改进词库导入导出吧。
微软拼音的用户自定义短语文件格式
# proto8 version phrase_offset_start
# 00000000 6d 73 63 68 78 75 64 70 01 00 00 00 40 00 00 00 |mschxudp....@...|
# phrase_start phrase_end phrase_count
# 00000010 48 00 00 00 7e 00 00 00 02 00 00 00 00 00 00 00 |H...~...........|
# timestamp
# 00000020 29 b8 cc 58 00 00 00 00 00 00 00 00 00 00 00 00 |)..X............|
# 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
# candidate2
# phrase_offsets[] magic hanzi_offset2
# 00000040 00 00 00 00 1c 00 00 00 08 00 08 00 10 00 01 06 |................|
# pinyin phrase
# 00000050 61 00 61 00 61 00 00 00 61 00 61 00 61 00 61 00 |a.a.a...a.a.a.a.|
# pinyin
# candidate2
# magic hanzi_offset2
# 00000060 61 00 00 00 08 00 08 00 10 00 05 06 62 00 62 00 |a...........b.b.|
# phrase
# 00000070 62 00 00 00 62 00 62 00 62 00 62 00 00 00 |b...b.b.b.b...|
# 0000007e
proto : 'mschxudp'
phrase_offset_start + 4*phrase_count == phrase_start
phrase_start + phrase_offsets[N] == magic(0x00080008)
pinyin&phrase: utf16-le string
hanzi_offset = 8 + len(pinyin)
phrase_offsets[N] + hanzi_offset + len(phrase) == phrase_offsets[N+1]
另外做了个简单的导入导出Python脚本
2.1.4已经支持Win10微软拼音词库导入! 再次感谢 @hhggit 的贡献!
@studyzy Win 10微软拼音词库导入不完全,我这里的个人词库只导入到字母a~g开头的,后面的都丢失了
可能是有最大导入数量限制?
@quericy 如果可能把你的源词库发给我,我自己也试一试呢!studyzy(a)163.com
win10版本1607,14393.10