首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java邮件字符集ISO-8859-2不起作用

Java邮件字符集ISO-8859-2不起作用
EN

Stack Overflow用户
提问于 2010-01-18 02:13:26
回答 4查看 7.3K关注 0票数 4

我在使用Java Mail API时遇到问题。

我可以成功地发送邮件,但邮件中没有显示一些特殊字符(来自ISO-8859-2语言,如捷克语、斯洛伐克语)。即使在IDE输出中,它们也会损坏。

我做错了什么?

代码语言:javascript
复制
Message msg = new MimeMessage(session);
msg.setContent(message, "text/plain; charset=iso-8859-2")
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-18 02:41:40

我使用multipart找到了解决方案。下面是代码:

代码语言:javascript
复制
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);
票数 2
EN

Stack Overflow用户

发布于 2010-05-10 18:13:26

Msg.setContent(消息,“文本/纯文本;字符集=UTF-8”);

而不是您给出的字符集?

票数 2
EN

Stack Overflow用户

发布于 2010-01-18 02:20:52

相反,使用UTF-8作为字符集,并将您的集成开发环境控制台配置为也使用完全相同的字符集。我不知道您使用的是哪种IDE,因为您没有告诉我,但是如果是Eclipse,那么您可以通过Window > Preferences > General > Workspace > Text file encoding > Other > UTF-8来更改它。

如果这不能解决问题,那么问题出在其他地方。也许您正在使用错误的编码从文件中读取消息。为此,您需要使用InputStreamReader,它将字符集作为第二个构造函数参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2082041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档