我们编写了一个 Delphi 程序,用 CDO 发送一些信息。
在我的 Win7 机器(匈牙利语)中,口音工作正常。
因此,如果我发送带有“ÁÉÍÓÖŐÚÜŰ”的邮件,我会以这种格式收到它。我在正文中使用了 iso-8859-2 编码,这将主题和电子邮件地址编码为(发件人地址包含名称)。
我以为我完成了这个。
但是当我尝试从 Win2k3 英文机器(邮件服务器相同!)发送邮件时,结果是截断了一些重音:Ű = U Ő = O
接下来我尝试在这里使用 UTF-8 编码。
这提供了口音 - 但错误的口音。
邮件包含带有 ^ 符号的重音符号。
ê <> é
这不是有效的匈牙利字母... :-(
所以我想知道,如何转换或设置输入以获得良好的结果。
我试图记录身体以查看变化......
Log(SBody);
Msg.Body := SBody;
Log(Msg.Body);
... 或不。
但是这些日志提供了很好的结果,输入很好。
因此在 CDO 生成消息时可能会丢失和错误转换。
如果我可以将 ANSI 文本编码为真正的 UTF,我可以帮助 CDO。但在 Delphi 转换器函数中没有“CodePage”参数。在 Python 中,我可以说:
s.encode('iso-8859-2')
或者
s.decode('iso-8859-2')
但在德尔福我没有看到这个参数。
有谁知道,如何保留重音,如何转换重音匈牙利字符串以保留重音格式?
我想知道,我可以在不发送邮件的情况下检查结果吗?
感谢您的帮助:dd