mdx 版本兼容性 — 新旧 MDict 打开词典格式差异
为什么有版本兼容问题
MDict 从 2007 年发布至今经历了多次格式升级。目前主流的 mdx 有两个版本:
- mdx 1.x:2007-2015 年主流,由 MDXBuilder 3.0 及更早版本输出;
- mdx 2.x:2018 年至今主流,由 MDXBuilder 4.0 及 mdtt/Slob 等第三方工具输出。
MDXBuilder 4.0 输出的词典在内部结构上做了几处不向后兼容的改动,因此:
- mdx 1.x 词典 → 所有版本 MDict 都能打开(向后兼容做得好);
- mdx 2.x 词典 → 老版本 MDict 打不开或部分词条丢失(新版本的格式是 4.0 才有新能力)。
哪些 MDict 版本能打开 mdx 2.x
| MDict 版本 | 能读 mdx 1.x | 能读 mdx 2.x | 备注 |
|---|---|---|---|
| PC 1.3 RC4 | ✓ | ✗ 或部分词条丢失 | 典型症状:词典能显示封面但内容是空的 |
| PC 2.0.12 | ✓ | ✓(完整) | 当前 PC 版推荐 |
| Android v2.2 及更早 | ✓ | ✗ 或图片/发音丢失 | 不支持 mdd 2.0 分卷格式 |
| Android v2.3.7 | ✓ | ✓(基本完整) | 官方停更的最后一个版本 |
| iOS App Store 版 | ✓ | ✓(基本完整) | 但发音 mdd 支持有缺陷 |
| DictTango(全平台) | ✓ | ✓(完整,含 mdd 分卷) | 社区推荐的替代阅读器 |
一句话:要用 MDXBuilder 4.0 制作的新词典(标注"精装版/重生版/美化版"的),必须 MDict PC 2.0 或 Android 2.3.7+。老版本建议直接升级。
怎么判断词典是什么格式
方法一:看论坛帖子
FreeMdict Forum 上 2018 年后发布的词典(或标注"MDXBuilder 4.0"、"重生版"、"精装版"的),几乎都是 mdx 2.x 格式。发帖人通常会在帖子开头注明"需要 MDict 2.0 以上版本"——如果看到这个提示,就知道是 2.x 格式。
方法二:用 MDXBuilder 或 mdtt 查看
MDXBuilder 打开词典后能看到格式版本号。或者用 mdtt 命令行:
mdtt view 牛津高阶.mdx
输出里会显示 Version: 2.0 或类似字样。如果是 2.0,就是 mdx 2.x 格式。
方法三:直接试
在你的 MDict 版本里直接打开——如果词典封面能显示但词条内容全是空白,大概率是 mdx 2.x + 老 MDict 的组合。
常见兼容故障
故障一:PC 1.3 RC4 打开 mdx 2.x 词典,词条内容空白
1.3 RC4 不识别 mdx 2.x 的压缩索引格式——它看到了封面和目录结构,但内部的词条正文是用 2.x 特有的方式压缩存储的,1.3 解析不了。解决办法只有一个:升级到 PC 2.0.12。
故障二:Android 老版本打开 mdd 2.0 分卷格式词典,发音和图片不显示
mdd 2.0 格式(.1.mdd、.2.mdd)的分卷机制是 MDXBuilder 4.0 新引入的。Android v2.2 及更早版本只认识单个 .mdd 文件,分卷的都识别不出来——词典正文能看(因为 mdx 部分可能还是兼容的),但发音和图片全丢失。
解决办法:升级 Android 版到 v2.3.7,或换 DictTango。
故障三:自制词典(mtxt + MDXBuilder 3.0)在新 MDict 上完全正常
mdx 1.x → 2.x 的向后兼容做得很好,新 MDict 读取旧格式词典不会有问题。所以如果你用的是 MDXBuilder 3.0 输出的老格式词典,完全不用担心——升级 MDict 不会让旧词典变坏。
故障四:DictTango 打开老词典比 MDict 1.3 更快
DictTango 使用完全不同的 mdx 读取引擎(不是 MDict 那套),对新旧格式的支持更统一。如果你同时有老格式和新格式的词典、或者经常遇到 MDict 版本兼容问题,DictTango 是一个统一解决方案。
升级建议
| 你的场景 | 推荐操作 |
|---|---|
| 装的是 PC 1.3 RC4,想用 FreeMdict 论坛 2020 年后的新词典 | 直接装 2.0.12,两个版本可以共存 |
| 装的是 Android v2.2 | 升级到 v2.3.7 或换 DictTango |
| 自制词典用 MDXBuilder 3.0 | 继续用就行,新 MDict 向后兼容 |
| 自制词典用 MDXBuilder 4.0 | 记得在帖子里注明"需要 MDict 2.0+" |
| iOS 用户 | 原版 MDict iOS 长期停更,建议换 DictTango for iOS |