将 百度输入法 Windows 版导出的
.bin用户词库,备份并迁移到 微信输入法(WeType)Windows 版个人词典。
微信输入法目前可以同步自己的个人词典,但 Windows 客户端没有提供“导入其他输入法用户词库”的公开入口。对于长期使用百度输入法、已经积累了数万条人名、专业术语、英文缩写和个人高频词的用户,直接换输入法意味着重新“养词库”。
Baidu2WeType 的目标就是把这部分属于用户自己的输入历史资产迁过去。
项目流程:
百度输入法导出的 .bin
↓
解析:词语 / 拼音 / 使用次数 / 最后使用时间
↓
转换为 WeType v5 用户词典 LevelDB 记录
↓
完整备份微信输入法数据
↓
离线构造 + CRC / WriteBatch / 回读校验
↓
原子替换 WAL
↓
重新打开微信输入法
↓
原百度用户词直接进入正常候选栏
- ✅ 解析百度输入法 Windows 用户词库导出
.bin - ✅ 支持中文用户词
- ✅ 支持英文用户词与大小写保留
- ✅ 保留百度词条的使用次数、最后使用时间
- ✅ 同拼音多词条不会简单互相覆盖
- ✅ 自动检测微信输入法 Windows
DictDir2\v5活动数据库 - ✅ 自动检测并阻止“微信输入法仍在运行时写入”
- ✅ 完整备份
AppData\LocalLow\TENCENT\WeType - ✅ 完整备份
AppData\Roaming\TENCENT\WeType - ✅ 逐文件 SHA-256 验证备份
- ✅ 离线生成 WeType LevelDB WAL
- ✅ LevelDB CRC32C 校验
- ✅ WriteBatch 结构校验
- ✅ 目标 Key/Value 全量回读校验
- ✅ 临时文件 +
os.replace原子替换 - ✅ 迁移失败自动回滚
- ✅ 一键恢复完整备份
- ✅ GUI 内置词库浏览、拼音搜索与 CSV 导出
- ✅ CLI 模式
- ✅ GitHub Actions 自动构建单文件 Windows EXE
2026-08-20 在 Windows 11 + 微信输入法 Windows 2.1.x 环境进行了完整实机验证。
一份真实百度输入法用户词库:
| 项目 | 实测结果 |
|---|---|
百度 .bin 文件大小 |
约 4.66 MB |
| 总用户词 | 43,672 |
| 中文用户词 | 42,167 |
| 英文用户词 | 1,505 |
| 百度词库解码失败 | 0 |
| 唯一中文拼音键 | 39,495 |
| 同拼音多候选组 | 1,653 |
| 单一拼音最多候选 | 24 |
| 生成 WeType 唯一 Key | 128,242 |
| LevelDB bad batch | 0 |
| 目标 Key missing | 0 |
| 目标 Value mismatch | 0 |
迁移完成后,抽取原百度词库中的冷门三字人名进行实机验证:输入完整拼音后,微信输入法正常候选栏能够直接给出对应完整姓名,验证通过。
这是正常现象,不是迁移失败。
微信输入法本地实际上把下面两类数据分开保存:
DictDir2\user_hot_word
→ “常用语”面板
DictDir2\v5
→ 个人词典 / 正常输入候选词库
因此,迁移后的百度用户词会进入正常拼音候选,不会被塞进“常用语”列表。
微信输入法官方隐私政策也分别描述了“个人词典”和“常用语”的存储、删除与同步方式:
- 微信输入法隐私政策:https://wxkeyboardcms-1258476243.file.myqcloud.com/page/article/index/4.html
- 微信输入法支持“同步词库和常用语”的版本说明:https://wetype.weixin.qq.com/
为了方便确认自己到底迁入了哪些内容,本工具提供了**“词库查看”标签页**,可以搜索词语/拼音并导出 CSV。
需要 Python 3.10+,运行时无第三方依赖:
python Baidu2WeType.pyw或直接双击:
启动工具.cmd
在百度输入法中导出用户词库 .bin。
打开工具,选择百度 .bin。
点击 分析词库,先确认条目数量正常。
从系统托盘彻底退出微信输入法。
点击 备份并迁移。
等待工具显示“实时回读校验 PASS”。
手动重新打开或切换到微信输入法。 测试几个原百度词库中的冷门人名/专业词。
工具不会自动强杀微信输入法,也不会重启 Windows。
检查环境:
python Baidu2WeType_cli.py check-env分析百度词库:
python Baidu2WeType_cli.py analyze "D:\Downloads\百度输入法词库导出.bin"只生成离线副本,不修改 AppData:
python Baidu2WeType_cli.py build-copy "D:\Downloads\百度输入法词库导出.bin" --out-dir "D:\WeTypeTest"完整备份并迁移:
python Baidu2WeType_cli.py migrate "D:\Downloads\百度输入法词库导出.bin"恢复备份:
python Baidu2WeType_cli.py restore "D:\Backups\WeType_Backup_Before_Baidu_Import_20260820_141355"这个项目默认把“能恢复”放在“能写入”前面。
实时迁移顺序固定为:
- 检查所有
wetype_*进程是否退出; - 完整复制 LocalLow WeType;
- 完整复制 Roaming WeType;
- 对备份逐文件计算并对比 SHA-256;
- 备份原始百度
.bin; - 在工作目录离线生成新的 WAL;
- 验证 LevelDB CRC32C;
- 验证 WriteBatch;
- 将全部目标 Key/Value 回放到最终状态检查 missing/mismatch;
- 再次确认微信输入法没有重新启动;
- 写入临时 WAL;
- 校验临时 WAL SHA-256;
- 使用原子替换替换活动 WAL;
- 对真实 WAL 再做一次全量回读;
- 任一步失败则从备份恢复原 WAL。
完整备份默认位于:
%USERPROFILE%\Documents\Baidu2WeType\Backups\
微信输入法 Windows 版个人词典的 DictDir2\v5 使用 LevelDB 风格存储。
实测涉及的主要用户词键包括:
!v2u!<pinyin>
!u_d_v_p!<pinyin>\x01<word>
!user_prefix2!<word>
!en_fe!<lowercase english>
!env2!<lowercase english>
Value 使用固定结构,主体字节存在 +6 偏移编码,尾部包含长度与:
5A A5 5A A5
更详细说明见:docs/技术说明.md。
百度用户词库中会出现多个词拥有完全相同的拼音。
本工具的策略是:
- 每个
词 + 拼音都写入!u_d_v_p!; - 每个词都写入
!user_prefix2!; !v2u!<pinyin>主映射按:- 百度使用次数更高;
- 最后使用时间更新;
- 稳定字符串排序; 选出主候选。
不会依赖“最后写进去的词碰巧覆盖前面的词”。
目前已经确认:
- 百度
.bin中可提取使用次数; - 百度
.bin中可提取最后使用时间; - 最后使用时间可以写入已经验证的微信输入法时间字段;
- 同拼音主候选可据百度使用次数与最近使用时间选择。
目前没有在未验证的字段里伪造微信输入法内部学习分数。这样优先保证词条正确进入候选,而不是猜测一个可能错误的词频公式。
已实测:
- Windows 11
- 微信输入法 Windows 2.1.x(2026-08-20)
- 百度输入法 Windows 用户词库导出
.bin
微信输入法属于持续更新的软件。未来如果腾讯修改本地词典格式,本工具可能需要适配更新。
每次迁移都请保留自动生成的完整备份。
本地构建:
.\scripts\build_windows.ps1输出:
Baidu2WeType_Windows_x64.zip
仓库也已配置 GitHub Actions:推送到 main 后会自动测试和构建 Windows EXE;推送 v* Tag 时会自动创建 Release。
项目已经准备好发布脚本。
Windows 下直接双击:
发布到GitHub.cmd
脚本会检查 Git / GitHub CLI,必要时可通过 winget 安装,然后完成登录、建仓库、首次 commit 和 push。
详细说明:docs/一键发布到GitHub.md
本项目使用 GPL-3.0。
百度 .bin 解码算法实现参考了开源项目:
nopdan/rose:https://github.com/nopdan/rose- Rose 明确支持
baidu_bak(百度输入法词库导出.bin),许可证为 GPL v3。
- 本项目与百度、腾讯、微信、微信输入法均无官方关联。
- 仅面向用户本人设备上的个人词库备份、互操作和迁移。
- 不访问、攻击或修改任何远程服务器。
- 不绕过账号认证,不处理账号凭证。
- 本地数据格式属于非公开实现,软件更新后可能发生变化。
- 请务必保留迁移前自动生成的完整备份。