使用javamail做接收邮件的系统,接收到的邮件标题存在乱码的问题

magicsnake 2004-12-20 11:21:13
Session session2 = Session.getInstance(System.getProperties(), null);
<%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>
<%
......
Store store = session2.getStore("pop3");
store.connect(mail_server, mail_username, mail_password);
Folder folder = store.getFolder("INBOX");
if (folder.isOpen())
folder.close(false);
folder.open(Folder.READ_ONLY);
Message message[] = folder.getMessages();
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
fp.add(FetchProfile.Item.FLAGS);
fp.add(FetchProfile.Item.CONTENT_INFO);
folder.fetch(message, fp);
for (int j=0; j<folder.getMessageCount(); j++) {
String tmp = new String (message[j].getSubject().getBytes("ISO-8859-1"), "gb2312") // 注意这里
out.print(tmp+"<br>");
}
......
%>
在我上面的代码中提到注意的地方,我进行字符集转换后,我的5封邮件有4封标题是乱码,1封正常.要是不进行转换正好反过来,我怎样才能判断邮件标题是否需要进行字符集转换?
...全文
248 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxjrsuibian 2004-12-26
  • 打赏
  • 举报
回复
怎么接贴了,问题解决了吗?我也碰到相同问题了
华生豆 2004-12-20
  • 打赏
  • 举报
回复
String tmp = new String (message[j].getSubject().getBytes("gb2312"), "ISO-8859-1")
magicsnake 2004-12-20
  • 打赏
  • 举报
回复
上面的
Session session2 = Session.getInstance(System.getProperties(), null);
应该在
Store store = session2.getStore("pop3");前面
magicsnake 2004-12-20
  • 打赏
  • 举报
回复
嗯,有没有哪种字符集正好能够将gb2312,ISO-8895-1这两种字符集都同时处理正常的?从我使用的结果看,那些标题也就是那两种字符集
eureka0891 2004-12-20
  • 打赏
  • 举报
回复
这个也不清楚,记得我上次做邮件时用IBM的一个字符集,结果有时字符会有一个字符打出来是乱码(只是在一行,其它的行也有该字符,但显示正常)
后来换了个字符集就没事了
楼主多试几个字符集试试
net_jun 2004-12-20
  • 打赏
  • 举报
回复
关注!
magicsnake 2004-12-20
  • 打赏
  • 举报
回复
要是使用
String tmp = new String (message[j].getSubject().getBytes("gb2312"), "ISO-8859-1")
我有4封信正常,但是还有一封是不正常的啊

如果用网络上带的邮件系统查看邮件他们都是正常的,网络上的邮件系统是怎么检查这些代码转换的?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧