文件格式
什么是 DOC?Word 97-2003 二进制格式详解
DOC 是 Word 97 到 Word 2003 使用的二进制文档格式,至今仍大量存在于各种档案中。本文介绍它的内部原理、不足之处以及如何安全地转换。
作者: Hemen Dönüştür Editör Ekibi发布日期: 阅读约 7 分钟

翻看一家机构的旧档案、拉到一封长邮件往来的最底部,或者从一个多年没有更新的软件里导出报表,你都会遇到以 .doc 结尾的文件。在 DOCX 随 Word 2007 出现之前,DOC 一直是 Microsoft Word 的默认格式,至今仍有大量文档以这种格式保存。本文将介绍 DOC 的由来、它的内部组织方式、与 DOCX 的不同之处,以及如何安全地打开和转换这些文件。
什么是 DOC?
DOC 是 Microsoft Word 的二进制文档格式。如今说到“DOC”,通常指 Word 97、2000、2002(XP)和 2003 共用的格式,Microsoft 的官方规范涵盖的也正是这几个版本。与基于文本的格式不同,用记事本打开 DOC 文件看不到任何有意义的内容:其中的内容是按照 Word 自身数据结构排列的字节序列。
简要历史
“.doc”扩展名最早于 1983 年随 MS-DOS 版 Word 出现。扩展名一直没变,但背后的格式却改过好几次:
- Word for Windows 1.0 和 2.0:使用各自的 DOC 格式。
- Word 6.0 和 Word 95:格式发生变化,这两个版本共用同一格式。
- Word 97 到 Word 2003:DOC 基于 OLE 和复合文件二进制格式(CFB)重新构建。Microsoft 还发布了导入转换器,让 Word 6.0 和 95 的用户也能打开新文件。
- Word 2007:DOCX 成为默认格式。Word 仍然可以打开和保存 DOC;打开 DOC 文件时,标题栏会显示“兼容模式”。
这种格式的文档公开过程本身也很曲折。1997 年,Microsoft 以限制性许可发布了 Office 97 二进制格式规范,并于 1999 年撤回。从 2006 年到 2008 年 2 月,规范只能在受限条件下申请获取,因此 OpenOffice.org 等项目不得不对格式进行逆向工程。2008 年 2 月,Microsoft 依据其开放规范承诺(Open Specification Promise)发布了 DOC 规范。如今在 Microsoft Learn 上以 [MS-DOC] 名义发布的文档,列出的第一个版本日期是 2008 年 6 月 27 日,并且仍在维护:页面上列出的最新修订日期为 2026 年 2 月 17 日。
DOC 文件里面有什么?
Word 97 之后的 DOC 文件实际上是一个“文件中的文件系统”。根据 Microsoft 的 [MS-CFB] 规范,复合文件二进制格式在一个文件内部提供了类似文件系统的结构,用于存储应用程序特定的数据流。其中的文件夹称为存储(storage),文件称为流(stream)。文件被划分为固定大小的扇区(第 3 版为 512 字节,第 4 版为 4096 字节),并由一张分配表(FAT)记录每个扇区属于哪个流。
每个复合文件都以相同的 8 字节签名开头:
D0 CF 11 E0 A1 B1 1A E1
这个签名并非 Word 专有,旧版 Excel(.xls)和 PowerPoint(.ppt)文件也使用同样的容器。让 DOC 文件成为 Word 文档的,是其中包含的一组流:
- WordDocument 流:保存文档正文,并在偏移量 0 处保存 FIB(File Information Block,文件信息块)。FIB 就像一份目录,指明其他所有内容的位置。
- 表流(0Table 或 1Table):承载 FIB 所指向的数据,例如格式、样式、字体和段落属性。根据 MS-DOC,FIB 中的
fWhichTblStm位决定使用哪一个;如果两者都存在,未被引用的流会被忽略。 - Data 流:可能保存嵌入图片等附加数据。
- ObjectPool 存储:保存嵌入的 OLE 对象,例如一张 Excel 表格。
- SummaryInformation 流:标题、作者、创建日期等摘要元数据。
如果文档已加密,表流会以加密头开头。这种复杂的、基于指针的布局让 DOC 文件加载很快,但也意味着一个损坏的扇区就可能让整个文档无法读取,其他软件也很难正确实现这种格式。
DOC 与 DOCX 对比
| 特性 | DOC | DOCX |
|---|---|---|
| 结构 | 二进制,OLE2 复合文件 | ZIP 包内的 XML 部件 |
| 标准 | Microsoft 发布的规范(MS-DOC) | ECMA-376 和 ISO/IEC 29500 |
| 宏 | 可以在同一文件中携带 VBA 宏 | 不可以(启用宏的文档使用 .docm) |
| 抗损坏能力 | 低,一个错误就可能影响整个文件 | 较高,各部件可以独立读取 |
| 新版 Word 功能 | 部分 2007 年以后的功能没有对应项 | 完全支持 |
哪里还会用到 DOC?
- 企业和公共档案:2007 年以前创建的公函、报告和模板。
- 旧版软件:仍以 DOC 导出报表的财务、人事或行业工具。
- 上传系统:只接受 DOC 的旧网页表单和内部系统。
- 宏模板:多年前搭建的、带有自动化功能的表单和模板。
优点与缺点
优点:软件支持非常广泛,Word 97 以来几乎所有文字处理程序都能打开 DOC。由于存在时间很长,它是在旧系统上最不容易出问题的 Word 格式。
缺点:由于长期封闭,复杂文档在第三方应用中可能丢失版式。因为可以携带宏,从恶意软件的角度看它比 DOCX 风险更高。Word 2007 之后新增的一些功能,例如较新的图形和排版元素,在保存为 DOC 时会被简化或丢失。同样内容的 DOC 文件通常也比 DOCX 更大。
哪些程序可以打开 DOC?
所有桌面版 Microsoft Word 都能打开 DOC。LibreOffice Writer、Google 文档、Apple Pages 和 WPS Office 也能读取。在 Linux 服务器和自动化流程中,DOC 文件通常用 LibreOffice 处理。
常见问题及解决方法
Word 以受保护的视图打开文件,无法编辑
出于安全考虑,Word 会以只读方式打开来自互联网或电子邮件的旧格式文件。如果你信任来源,请点击“启用编辑”。不要在来源不明、要求你启用宏的文档中启用宏。
文件打不开或显示乱码
有些 .doc 文件其实并不是 DOC。Word 的“另存为网页”输出,以及被改名的 RTF 或 DOCX 文件,都可能带着 .doc 扩展名流传。可以试试 LibreOffice 这类会识别内容的程序。对于确实损坏的 DOC,Word 的“打开并修复”选项或许能恢复文字。
兼容模式与缺失的功能
在保存为 DOC 的文档中,新版 Word 的功能不可用。如果还要继续编辑,请通过“文件 > 信息 > 转换”把它转为 DOCX。
DOC 文件转换技巧
在我们的转换器上,DOC 文件会上传到我们的服务器,用 LibreOffice 处理,并在 30 分钟内删除。转换前会检查文件的前几个字节:真正的 DOC 文件、实际为 DOCX 或 RTF 的“.doc”文件,以及 Word 基于 HTML 的“.doc”输出都可以接受。如果内容与这些都不匹配,你会看到“无法读取文件”的提示,而不是一份满是乱码的文档。
- DOC 转 Word(DOCX)是让旧文档继续可用的最佳方式。转换直接通过 LibreOffice 完成,没有中间步骤,因此页面版式、页眉页脚、表格和图片都会保留。
- DOC 转 PDF 适合归档,或分享给没有 Word 的人。
- DOC 转 TXT 只提取纯文本,便于在旧档案中搜索或导入其他系统。
- 如果需要把 DOCX 上传到旧系统,请使用 Word 转 DOC。
常见问题
现在还应该使用 DOC 格式吗?
新文档不建议使用;DOCX 更安全、更稳健,而且是开放标准。只有在接收系统不接受其他格式时才使用 DOC。
DOC 文件会含有病毒吗?
DOC 文件可以包含 VBA 宏,宏病毒就可能借此传播。不要在来源不明的 DOC 文件中启用宏,并保持办公软件为最新版本。
DOC 转 DOCX 会丢失内容吗?
通常不会。DOCX 几乎涵盖了 DOC 支持的所有内容。个别非常旧的 Word 版本特有的域代码或嵌入对象可能显示不同,因此重要文档转换后请检查一遍。
DOC 规范是公开的吗?
是的。Microsoft 在 Microsoft Learn 上以 [MS-DOC] 发布了 Word 97-2003 二进制格式,以 [MS-CFB] 发布了复合文件容器。自 2008 年 2 月起,这些规范受开放规范承诺保护。
可以在手机上打开 DOC 文件吗?
Word 移动应用和 Google 文档都能打开 DOC。如果只需要阅读,把它转换为 PDF 可以确保在任何设备上都能正确显示。


