答案1
由于某种原因,Outlook误解邮件正文为 UTF-16-LE,但实际上它是常规的基于 ASCII 的文本。(给定的示例是纯 ASCII,整个邮件可能是 UTF-8。)
misdecoded: 䐼 噉 氠 湡 㵧
(Unicode): U+443C U+5649 U+6C20 U+6E61 U+3D67
raw bytes: 3C 44 49 56 20 6c 61 6e 67 3d
UTF-8: < D I V ␣ l a n g =
给定的样本解码为:
<DIV lang=sv class=OutlookMessageHeader align="left" DIR="LTR"> <FONT Face="C" Size=2>-<BR> <B>F</B> F <BR> <B>S</B> d<BR> <B>T</B> V<BR> <BCHAR</B> J<BR> </FONT> </DIV><DIV></DIV>
我不知道 Outlook 为什么使用错误的编码。发件人可能在内容类型标头(参见邮件的“属性”窗口);该邮件可能是由自动邮件程序编写的,它混淆了 UTF-8 和 UTF-16。如果涉及 Outlook 和/或 MS Exchange,则找出原因会困难一倍。
答案2
根据grawity的回答,我检查了标题设置。 这个解决方案对我有用:
- 去文件 -> 高级并查找国际选项標軸。
- 取消选中“在回复和转发的邮件标题以及转发通知中使用英语”。
- 重新启动 Outlook
- 测试回复
我在 Windows 10、Outlook 版本 1902(Office 365)上工作。
您的经历可能有所不同。
答案3
您可以使用以下iconv
命令将这些汉字转换回文本:
iconv -f UTF-8 -t UTF-16LE input.txt
您可以使用在线工具iconv
来修复文本这里。
只需使用 UTF-8 作为输入,UTF-16LE 作为输出。
答案4
将 MS Outlook 中的编码设置从 UTF 8 更改为西欧。
转到文件 -> 选项 - 高级并查找国际选项标题。传出邮件的首选编码:西欧 (ISO)
传出 vCard 的首选编码:西欧 (Windows)
然后重新启动 Outlook 并检查。您的问题将被修复。