您昨天打开了一个完全可读的 PDF。如今,每个页面都显示随机符号而不是文本。字母已被方框、问号、加号或完全不相关的字符串(如“%$#@!”)取代。句子应该在哪里。文档结构完好无损。页面就在那里。图像很好。但每一页上的每一个字都变成了乱码。
这是字体编码失败,也是最令人担忧的 PDF 问题之一,因为看起来文件已损坏且无法恢复。在大多数情况下,内容是完整的。 PDF 使用的字符代码查看者无法映射到正确的字母形状。修复通常涉及修复字体编码、安装丢失的字体或通过正确解析编码的引擎重新渲染 PDF。

PDF 中出现乱码文本的三个最常见原因
原因一:缺少没有嵌入后备的字体。 PDF 是使用未嵌入文件中的字体创建的,并且您的系统没有安装该字体。 PDF 查看器尝试替换不同的字体,但替换后使用不同的字符编码。表示“A”的字符代码是“A”。原始字体中的内容意味着替代字体中的其他内容。观看者忠实地呈现替代字符,这就是为什么页面上的每个字母都被不同的符号替代的原因。
原因二:PDF 中的字体数据损坏。字体已嵌入,但嵌入的字体数据已损坏。当 PDF 被部分下载、通过修改二进制数据的电子邮件系统传输或存储在出现故障的存储设备上时,可能会发生这种情况。字体数据存在,但包含导致渲染引擎错误解释字符代码的错误。文本看起来是随机的,但实际上是损坏的输入的确定性结果。每次打开文件时,相同的文本都会显示为相同的乱码,因为损坏是在存储的字体数据中,而不是在瞬态渲染错误中。
原因三:PDF中指定的字符编码不正确。 PDF 包含 /Encoding 条目,告诉查看者如何将字符代码映射到字形,但指定的编码与文本的实际编写方式不匹配。这种情况最常发生在由旧版或非标准软件创建的 PDF 中,这些软件使用一种编码编写文本,但在文件的元数据中声明了不同的编码。查看器应用声明的编码并产生乱码。如果它改为应用创建者使用的实际编码,则文本将正确呈现。声明的编码和实际的编码之间的不匹配是三个原因中最容易修复的,因为文本数据是完整的。只是映射指令是错误的。
尝试修复 PDF
无需安装。直接在您的浏览器中工作。
如何诊断您的 PDF 存在哪些问题
一组快速测试可以缩小原因范围。首先,在不同的查看器中打开 PDF。如果它在 Adobe Acrobat 中显示正确,但在浏览器中显示乱码,则问题出在浏览器的 PDF 渲染器上,而不是文件上。安装缺少的字体或使用其他查看器。如果 PDF 在每个查看器中都显示乱码,则问题出在文件本身。
其次,检查文档属性中的PDF字体列表。在 Acrobat 中,转到“文件”、“属性”、“字体”。如果字体列表显示标记为未嵌入的字体,并且您的系统上未安装这些字体,则存在字体丢失问题。安装该字体或在具有该字体的系统上打开该文件。如果字体列表显示嵌入字体,但文本仍然是乱码,则嵌入字体数据可能已损坏。
第三,尝试选择并复制乱码文本。将其粘贴到文本编辑器中。如果粘贴的文本是原始的正确文本,则字符会正确存储在 PDF 中,但显示映射会被破坏。这表明编码声明不匹配。文本数据很好。观众只是显示错误。如果粘贴的文本也是乱码,则字符数据本身已损坏,这是一个更深层次的问题。
如何修复 PDF 显示随机符号
对于缺少的字体,请在系统上安装所需的字体。字体名称列在文档属性中。许多字体可以免费下载,也可以购买和安装商业字体。安装字体后,重新打开 PDF。文本应该正确呈现。如果安装字体不可行,请在具有更好字体替换的查看器(例如 Adobe Acrobat)而不是浏览器查看器中打开 PDF,或者使用WukongPDF 使用嵌入字体重新呈现 PDF。重新渲染过程会解析所有字体引用并嵌入实际的字符形状,生成可在任何系统上正确显示的独立 PDF。
对于损坏的嵌入字体,修复方法是修复或替换字体数据。 WukongPDF 的PDF 修复 工具可以检测损坏的字体流并尝试从幸存的数据中重建它们。如果字体是部分可恢复的,则该工具会提取完整的部分并重建工作字体子集。这并不总是成功的。如果损坏很严重,文本可能部分或完全无法恢复,唯一的办法是找到原始源文档并重新创建 PDF。
对于编码不匹配,在所有情况下最可靠的解决方法是将 PDF 打印为新的 PDF。在任何可以正确显示文件的查看器中打开文件,即使一台特定计算机上只有一个查看器可以正确呈现该文件,然后使用“打印到 PDF”功能来创建新文件。打印过程使用系统当前的字体渲染重新渲染每个字符,有效地将正确的字符形状作为嵌入字体数据烘焙到新的 PDF 中。由于新的 PDF 使用带有嵌入字体的标准编码,因此解决了编码不匹配的问题。此修复保留了文本的视觉外观,但可能会丢失底层字符编码,如果以后需要对文本进行搜索或提取,这一点很重要。对于可搜索性很重要的文档,请使用专用的Fix PDF工具来修复编码,同时保留文本层。
防止您创建的 PDF 中出现字体编码问题
创建 PDF 时始终嵌入字体。这个单一设置可以防止绝大多数乱码文本问题。在每个导出为 PDF、Word、InDesign、Illustrator、PowerPoint 的应用程序中,都有一个嵌入字体的选项。找到它。启用它。生成的 PDF 会稍大一些,通常每种字体 50 KB 到 200 KB,但无论现在还是将来,它都会在每个查看器的每个系统上正确显示。
使用标准编码。避免使用自定义字符编码,除非您有特定原因并且了解其含义。每个 PDF 查看器都可以理解 PDF 标准编码(用于拉丁文字的 WinAnsiEncoding 和用于 Unicode 的 Identity-H)。自定义编码可以被创建它们的软件理解,而不是其他。对于 PDF 文本来说,带有嵌入字体的标准编码是最便携、最可靠的组合,并且随着时间的推移,它在所有平台上都保持可读性。
如果您在由旧版或专用应用程序(例如大型机报告生成器、旧会计系统或科学仪器输出模块)创建的 PDF 中遇到乱码文本,则编码问题可能出在 PDF 的字符映射表中,而不是缺少字体。这些系统有时会生成 PDF,其中使用自定义符号编码存储文本,该编码将字符代码映射到字体中的字形位置而不是 Unicode 值。当现代查看者尝试将文本提取为 Unicode 时,映射会失败并产生乱码。这些文件的修复方法是使用 PDF 修复工具,该工具可以检测非标准编码,并将其替换为标准 Unicode 映射,或者将文本提取为原始字符代码并从字体数据重建编码。这是一种超出通用 PDF 工具处理能力的专门修复操作,并且通常需要一个明确支持旧版编码修复的工具。
尝试修复 PDF
无需安装。直接在您的浏览器中工作。
