在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");

你试过“ISO-2022-JP”编码?

 message.setContent(content, "text/html; charset=ISO-2022-JP"); message.setHeader("Content-Type", "text/plain; charset=ISO-2022-JP");