正确设置UTF-8编码,即使电子邮件出现了吗?和

时间:2013-12-13 07:48:14

标签: java email encoding utf-8 javax.mail

我正在使用javax.mail API向我的Outlook发送电子邮件。我的身体里有中国和法国人物。 我正确地将身体设为

MimeMessage.setText(正文,“UTF-8”);

另外在电子邮件中我正在查看标题。他们适当地来了: 内容类型:text / plain;     字符集= “UTF-8” 内容传输编码:quoted-printable

有趣的是,从其他机器,电子邮件很好,但是当我从我的桌面尝试它时,它没有正确编码。

我也是通过打印身体来检查日志。他们恰好用中文和法文。 需要帮助 ? 这与Sendmail有什么关系吗?

1 个答案:

答案 0 :(得分:0)

应该有效;你也忘了做主题。特别是当您检查标题时。编码呼叫:

MimeMessage message = new MimeMessage(session);
message.setSubject(subject, "UTF-8");
message.setText(body, "UTF-8");
//message.setHeader("Content-Type", "text/plain; charset=UTF-8");

我认为,桌面上的电子邮件设置强制编码错误。


偏执狂:通过硬编码的u-escaped字符串检查正文字符串:

message.setText("\u00e9\u00f4\u5837" + body, "UTF-8"); // éô堷