我和妻子之间的电子邮件最近开始出现问题,因为有人在邮件中插入了“�”字符序列。这似乎是编码问题。
这个问题将字符串标识为字符“�”的 UTF-8。通过谷歌搜索发现的各种讨论表明,人们在电子邮件和浏览网站时遇到过各种其他字符(例如撇号和省略号)被替换为此字符串的情况。似乎这个 UTF-8 字符被用作各种不可渲染字符的通用替代。
在这种情况下,我在 Linux 中使用 Thunderbird (V52.5.0),而我的妻子在 Windows 7 中使用 Outlook (2007)(都将消息格式化为 HTML)。
Thunderbird 插入了一些不可见的格式标记,这些标记在 Outlook 中被此字符串替换。此字符串出现在两种类型的位置:
- 替换句子末尾句号和下一个句子之间的第一个空格
- 回车符用于在段落之间创建空行。
替换发生在 Outlook 中,并适用于已在 Thunderbird 中呈现的邮件线程中的所有内容。这包括源自 Outlook 但在回复 Outlook 之前已在 Thunderbird 中呈现的线程的旧邮件。
这是字符替换问题,而不是渲染问题。字符串替换后,稍后在任一系统上查看消息时,损坏仍然存在。
这是一个非常新出现的问题,因此我认为其中一个系统上的软件或操作系统更新是导致该问题的原因。
我查看了 Thunderbird 和 Outlook 中的编码设置,确实,它们是混杂的;一些是 UTF-8,一些是西欧(不知道它从何而来),还有一些其他的,我认为是西方 ISO 8859)。我将所有内容都设置为 UTF-8。以下是我发现并更改的内容:
- 雷鸟:
Preferences | Display | Formating | Fonts Advanced | Text Encoding
- 展望:
Tools | Options | Mail Format | International Options
还有:Tools | Options | Other | General | Advanced Options | Use Unicode message format when saving messages
我还验证了两个系统上的语言环境设置仍然正确(美国、美式英语等)。
不幸的是,症状没有改变。Thunderbird 或 Outlook 中是否存在隐藏在各个地方的编码设置,而我可能没有注意到(或者存在其他问题)?
答案1
看起来编码差异实际上是问题所在。我一直在用我认为没有损坏的旧邮件重新测试。事实上,它们似乎已经损坏了。Saeed Sepehr 建议用网络邮件进行测试,结果在两个方向上都创建了新邮件和回复,没有任何症状。
因此,在两个系统上将所有编码都设置为 UTF-8 即可解决问题。现在已验证。
我发现另一位 Thunderbird 用户在 12 月初在 Mozilla 支持论坛上发布了类似的问题。遇到此问题的人将编码设置为西方 (ISO-8859-1)。将其设置为 UTF-8 至少是解决方案的一部分。
另外一个建议似乎对一些用户有帮助(或者至少没有伤害):
Edit | Preferences | Display | Formatting | Fonts Advanced | Text Encoding |
勾选 的复选框When possible, use the default text encoding in replies
。 警告:仅与将编码设置为 UTF-8 结合使用。仅将编码设置为 Western (ISO-8859-1) 会使问题更加严重。
请注意,菜单路径在不同版本中略有移动,因此您可能需要根据 Thunderbird 的版本找到这里和问题中提到的设置。
答案2
看起来您发送电子邮件为 HTML 格式,但源软件在电子邮件正文中插入了 BOM(字节顺序标记)字符。您可能看不到它们,因为这种情况大多发生在非英语输入类型中,因为每个字符的位数不同。
我没有使用 Thunderbird,但您可以检查编码视图中是否有任何标记为“无 BOM”的选项,然后检查它。
我认为另一个可行的选择是在发送方客户端(Thunderbird)中使用 UTF-16,并在目标(Outlook)的编码视图中使用相同的 UTF-16。