Skip to content
Back to Blog
format-comparisons

DOCX vs. DOC:微软当年为什么要换掉 .doc 格式?

2026-05-17 8 分钟阅读

一个用了20年的格式,为什么后来成了大问题?

.doc 格式自1983年随 Word for DOS 一同问世,在二十多年的时间里一直是微软默认的文字处理格式。等到 Office 2003 发布时,.doc 文件已经无处不在了。它们存在于公司服务器、政府系统、大学网络,当然还有个人电脑上。这个格式确实能用,但其悠久的历史也带来了沉重的包袱。 这个格式的核心问题在于其不透明性。一个 .doc 文件是一个专有的二进制数据块,其结构只有微软才真正了解。这对第三方开发者来说简直是一场噩梦。任何想要开发能读写 .doc 文件的软件的人,都必须反向工程其规范,这个过程非常痛苦,还不可避免地导致兼容性错误、格式错乱和数据丢失。多年来,WordPerfect、LibreOffice 和 Google Docs 为了完美兼容 .doc 格式而进行了一场注定失败的战斗。 安全是另一个大问题。因为 .doc 文件可以在那个不透明的二进制容器里嵌入强大的 VBA 宏,杀毒软件和邮件过滤器很难可靠地检查它们。这个设计缺陷助长了1990年代末的宏病毒爆发。1999年的“梅丽莎”病毒感染了大约一百万台电脑,它之所以能如此高效地传播,就是因为它很容易将恶意代码隐藏在一个看似无害的文档中。 到了新千年,压力越来越大。各国政府和大型企业,包括欧盟委员会和几个美国联邦机构,开始公开质疑专有的二进制格式是否适合长期保存公共记录。微软需要一个可信、开放的答案。

揭秘 DOCX:它的底层究竟是什么?

当微软在 Office 2007 中推出 DOCX 时,它不仅仅是为旧文件换了个新扩展名,而是一次彻底的重塑,基于一个名为“开放打包约定”(Open Packaging Conventions, OPC)的规范,而这个规范本身又是基于 ZIP 压缩的。这可不是什么冷知识——这是理解 DOCX 所有优点的关键。 教你一招:随便找一个 .docx 文件,把它的扩展名改成 .zip,然后打开它。你会看到一个标准的文件夹结构。里面有 XML 文件、一个用于关系映射的 _rels 目录,还有一个存放实际文档内容的 word/ 子目录。正文内容在 word/document.xml 里,样式定义在 word/styles.xml 里,图片作为独立文件存放在 word/media/ 中,而作者、创建日期等元数据则在 docProps/core.xml 里。 这种架构带来了深远的实际好处。XML 是人类可读的,这意味着开发者可以在文本编辑器中打开 document.xml,就能清楚地看到文档的内容和结构。这种透明性让谷歌、苹果、LibreOffice以及无数其他厂商能够轻松地构建可靠的 DOCX 支持。这对互操作性来说是颠覆性的改变。而且,因为图片和其他资源是作为独立文件存储在 ZIP 容器里的,包中某一部分的损坏不一定会毁掉整个文档。一个损坏的 .doc 文件通常就完全报废了,而一个损坏的 .docx 文件常常可以手动修复。 ZIP 压缩本身也非常高效。一份 450 KB 的 .doc 格式商业报告,换成 .docx 后可能只有 180–220 KB。对于存储数百万份文档的组织来说,这超过 50% 的存储成本削减绝非小事。

兼容性过渡:微软做对了什么,又做错了什么

微软知道不能强制用户“一刀切”。Office 2007 发布时附带了一个兼容包,让 Office 2003 和 XP 的用户也能打开和保存 DOCX 文件。公司还保留了 .doc 作为“另存为”选项,直到今天,你仍然可以在最新版的 Microsoft 365 中找到“Word 97-2003 文档 (.doc)”这个格式选项。 尽管如此,这个过渡过程还是一团糟。在2007年,那些在 Windows XP 上运行 Office 2003 的庞大用户群体,必须让 IT 部门手动安装那个兼容包。公司邮件系统会因为 .docx 是未知文件类型而拦截附件,直到管理员更新了他们的安全策略。DOCX 推出的头几年催生了大量的技术支持工单。 也存在实实在在的功能对等问题。一些旧的 .doc 功能无法完美地映射到新的 OOXML 架构上。复杂的域代码、旧的绘图对象(尤其是那些来自 VML 绘图层的对象),以及在多个 Word 版本间反复编辑过的文档,常常会积累一些格式上的怪癖,导致转换效果不佳。任何在现代 Word 中打开过旧 .doc 文件的人,都见过那个黄色的兼容模式警告栏。点击“文件 > 信息 > 转换”可以消除这个警告,但在复杂的布局中,它也可能悄悄地改变文本的重排或搞乱表格的尺寸。 对于大多数文档——比如普通的信件、报告或提案——转换是无缝的。但对于那些包含重叠文本框和嵌入式旧对象的精确页面布局文档,你必须测试转换后的文件。不能想当然地认为转换成功了。

文件大小、损坏风险与长期归档

DOCX 相对于 DOC 的文件大小优势是真实存在的,但具体效果因情况而异。以文本为主的文档压缩率非常高。而主要由嵌入图片组成的文档则效果不明显。这是因为 JPEG 和 PNG 图片在被放入 ZIP 容器之前就已经被压缩过了。一份带有一个图表的10页报告,大小可能从 380 KB (.doc) 缩小到 160 KB (.docx)。而一份塞满了15张高分辨率截图的10页文档,大小可能只从 8.2 MB 减少到 7.9 MB。 它们处理文件损坏的方式差异则要大得多。由于 .doc 文件是单一的二进制流,驱动器上的一个坏扇区或保存时网络连接中断,都可能导致整个文件无法读取。Word 自带的 .doc 恢复功能只是尽力猜测,通过扫描它能识别的二进制模式来恢复。而 DOCX 的损坏是粒度化的。Word 通常可以打开一个损坏的 .docx 文件,并恢复 document.xml 中的所有文本,即使图片或样式丢失了。你甚至可以尝试手动修复,把它当成 ZIP 文件打开,然后自己把 XML 文件取出来。 但说到长期归档,咱们得把话说清楚:这两种格式都不是正确的选择。官方的文档保存标准是 PDF/A (ISO 19005),它会嵌入字体、剥离活动内容,专为确保未来能够访问而设计。如果你要归档合同、法律文件或公共记录,正确的工作流程是在 DOCX 中定稿,然后导出为 PDF/A。你不应该归档可编辑的格式。CocoConvert 可以处理你的 DOCX 到 PDF 的转换,但对于包含复杂宏的文档,你需要先在 Word 里处理好这些元素,才能得到一个干净的转换结果。

那些真正要紧的安全差异

大多数人认为 DOCX 天生比 DOC 安全。他们只说对了一半。这里的细微差别很重要。 安全的那部分是真的:普通的 .docx 文件不能包含 VBA 宏。微软很聪明地创建了一个独立的、明确的扩展名 .docm,专门用于启用宏的文档。这种简单的区分让邮件过滤器和安全软件可以轻而易举地识别和拦截可能包含可执行代码的文件。这是 OOXML 规范中一个明智的设计选择。 但 DOCX 文件也并非完全无害。它们可以包含外部关系——即指向远程资源的链接,并在文档打开时加载它们。一个精心制作的 .docx 文件可以在其 _rels 目录中隐藏一个指向攻击者服务器的引用。当用户打开文件时,Word 会发出一个出站 HTTP 请求,可能通过 NTLM 身份验证泄露用户的 IP 地址和 Windows 凭据。这种被称为“远程模板注入”的攻击,已经在针对记者和活动家等高价值目标的真实攻击活动中使用过。 微软已经通过补丁和其“受保护的视图”功能缓解了最糟糕的情况,该功能会在一个安全的沙箱中打开下载的文档。然而,底层的机制依然存在。结论很简单:你仍然应该对来自未知来源的 .docx 文件保持警惕。在“受保护的视图”中打开它们,或者更好的做法是,在分享前将它们转换为 PDF。而对于 .doc 文件,风险甚至更高,因为其不透明的二进制格式让分析更加困难,而且旧式宏的执行是一个已知的威胁。

什么情况下你仍然需要处理 DOC 文件

尽管 DOCX 成为默认格式已经快二十年了,但 .doc 文件并不会消失。法律部门通常有大量的 .doc 格式模板库,因为他们昂贵的文档管理系统——比如21世纪中期像 iManage 或 OpenText 这样的平台——就是为此构建的,而且从未升级过。一些政府机构在提交监管文件时仍然强制要求使用 .doc 格式。而且,任何清理过旧服务器的人都知道,.doc 文件会像数字沉积物一样随着岁月累积。 在现代版本的 Word 中打开一个 .doc 文件通常没什么问题。Word 2016、2019、2021 和 Microsoft 365 都能很好地处理它们,即使会显示兼容模式的横幅。LibreOffice Writer 也做得不错,尽管在处理有来自多位作者的复杂修订记录的文档时可能会有些吃力。 真正的挑战是批量转换。把一个文件夹里200个2004年的 .doc 文件转换成现代的 .docx 或 PDF 文件可能会很头疼。你可以用 Word 的宏录制器,但这需要你安装了 Word,并且懂一点 VBA。这就是像 CocoConvert 这样的工具发挥作用的地方了,它能处理 .doc 到 DOCX 和 .doc 到 PDF 的转换,而不需要本地的 Office 许可证。它非常适合在 Linux 服务器或混合环境中使用。唯一的难题是那些真正的边缘情况:比如带有大量 VBA 宏、嵌入了像古老的 Excel 图表这样的 OLE 对象,或者修订历史可以追溯到 Word 95 的文档。这些文件通常需要原版的 Word 应用程序才能正确地处理好自己。

为你的工作流选择正确的格式

对大多数人来说,决定很简单:用 .docx。它是现代标准,地球上所有主流的文字处理器都支持它。它开放的 XML 结构让你不必被锁定在单一供应商的专有格式中。如果你今天创建一个新文档,绝对没有任何好理由要把它保存为 .doc 文件。 只有当你被迫使用某个特定的旧系统时,选择才会变得复杂。如果法院的电子归档系统明确要求 .doc 格式,那你就保存为 .doc。如果你公司的文档管理系统在处理 DOCX 的修订记录时有已知的 bug,那就在问题修复前继续使用能用的格式。你选择的格式取决于文件的去向,而不仅仅是你的个人偏好。 在格式间转换时,请记住文档的复杂性是最大的影响因素。一封简单的求职信或一页的备忘录会转换得完美无瑕。而一份包含嵌套表格、基于其他自定义样式构建的自定义样式,以及各种绘图对象的50页复杂报告,则要脆弱得多。相信我:在把转换后的文件发给任何重要人物之前,一定要打开它,从头到尾滚动检查一遍。 最终,如果你的目标是最终分发,你应该完全绕开 DOC 与 DOCX 的争论,直接使用 PDF。PDF 能完美地保留你的布局,可以在任何设备上查看,而且对于一份定稿文件,这才是你的收件人真正想要的。最佳工作流程很明确:用 DOCX 保存你的可编辑主副本,用 PDF 分发最终版本,只有在特定系统强迫你时,才在可编辑格式之间进行转换。

DOCX vs. DOC:微软当年为什么要换掉 .doc 格式? | CocoConvert Blog