首页 > 解决方案 > 用不同的编码覆盖后无法打开 .docx 文件

问题描述

这不完全是一个编程问题,但我在尝试使用 Python 访问 .docx 文档时遇到了这个问题。

基本上,我用记事本手动打开了 .docx,然后用 utf-8 编码(ANSI 是默认编码)覆盖了它。在我这样做之后,如果我尝试打开文档,我会看到下一条消息:“我们很抱歉。我们无法打开文件名,因为我们发现其内容有问题”。单击详细信息,您将看到“文件已损坏且无法打开”。

如果我再次用 ANSI 保存文件也没关系,它不会打开。后来我用一个新文档尝试了它并发生了同样的事情,但是如果我用“ANSI”覆盖它也会发生这种情况(即使它是默认的)。

我仍然可以用记事本打开它,所以我的问题是:有没有办法恢复我的文件或将其转换为可读文档?

我已经尝试了以下链接https://docs.microsoft.com/en-US/office/troubleshoot/word/damaged-documents-in-word的每一种方法,但都没有奏效。

编辑:如果我用记事本打开任何ms-word 并用任何编码保存它,我将无法再用 ms-word 打开它。我不知道为什么,但是如果我打开文档并删除前两个字母(PK - 我相信它代表 zip 文档),我可以用 ms-word 打开文件,但它会有不可读的字符。

先感谢您

标签: encodingutf-8ms-wordansinotepad

解决方案


Word 文件是包含 XML 的 zip 档案,它已经以 UTF 编码。zip 存档是一种二进制格式,没有经过编码。记事本做出了猜测,但它是错误的。这就是为什么当您重新打开您认为以 UTF 保存的 Word 文件时,记事本仍然认为它是 ANSI 格式。

不幸的是,您的文件已损坏。它甚至不再是 zip 存档,因此您无法打开它以从 XML 中提取文本。最好下次在副本上进行实验。


推荐阅读