如果 Mac 文档显示乱码声调符号、替换符号或看似不相关的字符文本,请首先检查它是否是一个纯文本文件,且在读取时使用了错误的编码。在“文本编辑”中,使用不同的纯文本编码重新打开一个副本,并对比受影响的段落。如果文本看起来仍然不对,原因可能是文件格式不同、缺少字体或文件损坏;更改编码并不是万能的修复方法。

编码问题是什么样的

文本文件将字符存储为字节。编码负责在这些字节和可读字符之间建立映射。如果某个应用程序使用与保存时不同的编码来解读这些字节,结果可能会出现乱码(mojibake):原本可辨识的文本可能会变成奇怪的符号或一连串错误的字符。统一码联盟(Unicode Consortium)记录指出,Unicode 文本可以用 UTF-8 和 UTF-16 等格式表示,并且格式错误的 UTF-8 数据可能会产生错误或替换字符。Unicode 的 UTF-8、UTF-16、UTF-32 和 BOM 常见问题解答

寻找规律:普通的英文字符可能保持完好,而带重音符号的字母或非拉丁文字看起来却不正常,因为这些字符可能使用不同的字节序列。带有问号的黑色菱形替换符或一排 字符,可能表明读取程序无法解码某些数据。这些线索表明存在解码问题;但它们本身并不能指明原始编码是什么。

首先确定文件的类型

“文本编辑”的编码选择适用于纯文本文件。在排查问题之前,请注意文件扩展名以及文档的打开方式。诸如 .txt、.csv 或源代码文件通常是纯文本,但仅凭扩展名并不能证明文件的真实格式。Word 文档、PDF 或富文本(RTF)文档具有超出纯文本的结构和格式。Apple 列出了“文本编辑”可以打开的格式,并对富文本与纯文本进行了区分。Apple 的“文本编辑”文档指南

如果问题仅出现在一个应用程序中,请尝试在另一个合适的应用程序中打开同一文件,最好不要保存更改。如果在那里显示正常,则可能与第一个应用程序的显示或导入行为有关。如果在多个应用程序中都显示错误,则可能是文件的编码或内容本身存在问题。使用不同的字体可能会导致字形缺失,但通常不会将整段文本系统性地变成乱码。

在“文本编辑”中对比编码且不覆盖原文件

  1. 在访达(Finder)中制作该文件的副本,并使用该副本进行诊断。在对比各种选项时,请保持原始文件不变;在错误解读后保存文件可能会增加恢复的难度。
  2. 打开“文本编辑”,选取文件 > 打开,选中该副本但先不要打开。
  3. 在“打开”对话框中点按显示选项。在纯文本编码下,选择一种编码,然后点按打开。Apple 对这一单文件设置进行了说明,并指出如果未显示所需的选项,可以使用自定编码列表。Apple 关于字符显示不正确的说明
  4. 每次都对比同一段已知的简短内容:名称、带重音符号的词语、标点符号以及周围的句子。合理的结果应该能一致地恢复出可读的词语,而不仅仅是用另一个奇怪的字符替换原有的乱码字符。
  5. 如果来源明确——例如由某个特定系统导出的文件——请将其注明的编码作为下一个候选选项。如果没有此类信息,请尝试少数几种可能适用的常见选项,并在整篇文本通顺合理之前,将任何明显的改善仅视为一种假设。

在文本编辑 > 设置 > 打开和存储中的纯文本文件编码下,可以更改适用于所有文件的编码。在诊断单个文档时,请保持此默认设置不变:因为它也会改变“文本编辑”打开其他纯文本文件的方式。Apple 的“文本编辑”设置指南

当更改编码无济于事时

如果每一个备选编码生成的文本都无法阅读或前后不一致,请停止反复尝试各种选项。该文件可能不是纯文本文件、可能不完整或已损坏,或者包含在您接收之前就已经损坏的文本。请向发送者或源应用程序询问使用的是哪种格式和编码,并尽可能请求重新导出。错误的编码会使完好的字节看起来不正常;但它无法重建先前丢失或被替换的字符。

如果问题仅限于某一个符号,请对比它在另一个应用程序中的显示外观,并检查所选字体是否包含该字符。如果文档是 PDF、Word 文件或其他带格式的文档,请使用适合该格式的应用程序,而不要为了诊断走捷径将其转换为纯文本。“文本编辑”的格式 > 制作纯文本会移除格式,因此它不是检查原始文件的中立方式。Apple 解释了这种转换行为。

一旦某个候选编码使副本变得可读,请验证文档的多个部分,然后仅在确实需要转换后的文件时,才单独保存一份修正后的副本。重新打开该副本以确认它仍然清晰可读。在修正后的版本于要使用的应用程序或工作流程中完成检查之前,请保留未做任何改动的原始文件。

来源