在java中用日语字符发送电子邮件
我正在使用java发送电子邮件。 发送的消息可以使用不同的语言,但是当我用日语发送时,收到的邮件只有“???????” 字符。
代码是这样的:
String content = "\u30d5\u30a1\u30a4\u30eb\u540d:"; SMTPMessage message = new SMTPMessage(sess); message.setFrom(new InternetAddress(from)); InternetAddress dests[] = new InternetAddress[]{ new InternetAddress(to) }; message.setRecipients(Message.RecipientType.TO, dests); message.setSubject(subject); message.setContent(content, "text/html"); Transport.send(message);
发送的内容是unicode字符。 我应该如何正确编码消息?
您应该使用setText
而不是setContent
message.setText( content, "UTF-8", "html" );
添加: – message.setHeader("Content-Type", "text/plain; charset=UTF-8");
而不是使用setContent()
,尝试:
message.setText(content, "UTF-8", "html");
你试过“ISO-2022-JP”编码?
message.setContent(content, "text/html; charset=ISO-2022-JP"); message.setHeader("Content-Type", "text/plain; charset=ISO-2022-JP");