【发布时间】:2021-04-26 23:04:28
【问题描述】:
我尝试扩展电子邮件的“发件人”字段,代码如下所示:
name = 'Hans Müller';
mail = strcat(name, '<h.mueller@test.org>');
setpref('Internet','E_mail',mail);
setpref('Internet','SMTP_Server','mail');
sendmail('input@test.org','New post',body);
这实际上效果很好,但是在前景中看到的不是发件人名称中的变音符号,而是黑色菱形 - “M�ller”。 我尝试使用
更改默认字符集setpref ('Internet', 'E_mail_Charset', 'utf-8')
和
setpref ('Internet', 'E_mail_Charset', 'iso-8859-1')
两种变体都不成功,字符集“iso-8859-1”破坏了体内的元音变音,以前看起来很正常。
有人知道如何解决这个问题吗?正如我所说,正文 HTML 文本绝对没问题,只有发件人的姓名没有正确显示。提前致谢。
【问题讨论】:
-
您确定这不是 Outlook 问题吗? MATLAB 似乎可以很好地处理变音符号。
-
我认为outlook中的设置是可以的-在收到的电子邮件下是发件人名称中带有元音变音的发件人,并且显示正确。
-
电子邮件中的发件人地址编码在电子邮件标题中,而不是电子邮件正文中,我认为电子邮件标题仅支持 ASCII 或 Latin-1 值。它可能有一些特殊的编码机制,而 Matlab 可能不知道它,所以你的 unicode“ü”在转换为 ASCII 电子邮件标头时可能会变得混乱。如果我有时间,我会看看这个。此外,这值得通过 support@mathworks.com 向 Matlab 技术支持开一张票。
-
见stackoverflow.com/questions/760150/… 和tools.ietf.org/html/rfc6532。 Matlab 可能不在这些东西之上,因为那不是他们的风格。
-
顺便说一句,你的意思是“Unicode”,而不是“UTF8”——Matlab 将其字符串内部存储为 UTF-16,而不是 UTF-8,并且在转换其 UTF-16 数据时必须进行转码到电子邮件标题或正文。
标签: matlab