我在使用Java Mail API时遇到问题。
我可以成功地发送邮件,但邮件中没有显示一些特殊字符(来自ISO-8859-2语言,如捷克语、斯洛伐克语)。即使在IDE输出中,它们也会损坏。
我做错了什么?
Message msg = new MimeMessage(session);
msg.setContent(message, "text/plain; charset=iso-8859-2")发布于 2010-01-18 02:41:40
我使用multipart找到了解决方案。下面是代码:
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
MimeMultipart multipart = new MimeMultipart();
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
MimeBodyPart tmpBp = new MimeBodyPart();
tmpBp.setContent(message,"text/plain; charset=utf-8");
multipart.addBodyPart(tmpBp);
msg.setContent(multipart);
Transport.send(msg);发布于 2010-05-10 18:13:26
Msg.setContent(消息,“文本/纯文本;字符集=UTF-8”);
而不是您给出的字符集?
发布于 2010-01-18 02:20:52
相反,使用UTF-8作为字符集,并将您的集成开发环境控制台配置为也使用完全相同的字符集。我不知道您使用的是哪种IDE,因为您没有告诉我,但是如果是Eclipse,那么您可以通过Window > Preferences > General > Workspace > Text file encoding > Other > UTF-8来更改它。
如果这不能解决问题,那么问题出在其他地方。也许您正在使用错误的编码从文件中读取消息。为此,您需要使用InputStreamReader,它将字符集作为第二个构造函数参数。
https://stackoverflow.com/questions/2082041
复制相似问题