我有一个带有主题的jsp表单,内容字段接受来自用户的输入。该程序发送邮件。这两个字段都设置为String对象。发送邮件后,日文或中文字符将成为垃圾字符。如果作为“英语”主题,它工作正常。
这是我的代码
// create a message
MimeMessage msg = new MimeMessage(session);
if(subject != null)
msg.setSubject(subject, "UTF-8");
//msg.setSubject(subject);//commented to take care of email
// create the Multipart and add its parts to it
//MimeMultipart mp = new MimeMultipart();
MimeMultipart mp = new MimeMultipart("alternative");
if(body != null)
{
// create and fill the first message part
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(body);
mbp1.setHeader("Content-Type","text/html;charset=utf-8");
mbp1.setHeader("Content-Transfer-Encoding", "quoted-printable");
//mbp1.setContent(body, "text/html");
mp.addBodyPart(mbp1);
}
我在主题字段中给了主题漢字 test message
并发送邮件。我正在收集日文字符的垃圾字符。所以我收到的邮件主题为?? test message
但是当我收到邮件时,仍会在主题中收到一些垃圾字符。
答案 0 :(得分:1)
主题字符串是如何创建的?在发送表单数据时是否考虑了用户浏览器使用的字符编码?您是否验证该字符串包含正确的Unicode字符数据?