社区
Java SE
帖子详情
JavaMail中标题乱码的问题!
huwin
2003-01-10 10:36:23
我用javamail中的mm.getSubject()方法得到的信件标题,再不事先标记为GB2312时,返回的中文标题会是乱码,而且使用:
String subject = new String(mm.getSubject().getBytes("ISO-8859-1"),"GB2312");转换也无效。
例如用sina.com.cn的webmail发出的邮件,请问如何解决呢?
...全文
210
4
打赏
收藏
JavaMail中标题乱码的问题!
我用javamail中的mm.getSubject()方法得到的信件标题,再不事先标记为GB2312时,返回的中文标题会是乱码,而且使用: String subject = new String(mm.getSubject().getBytes("ISO-8859-1"),"GB2312");转换也无效。 例如用sina.com.cn的webmail发出的邮件,请问如何解决呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
54sunboy
2003-01-13
打赏
举报
回复
謝謝!
GJA106
2003-01-10
打赏
举报
回复
public String getSubject()
throws MessagingException
{
String strSubject = "",temp="";
int pos = 0;
String strMailSubject[] = message.getHeader("Subject");
boolean flag = MailAccount.A;
String strCodingType = "";
if(strMailSubject == null)
{// System.out.println("邮件头空值,返回[没有主题]");
return subject;
}
else
{// System.out.println("原始长度 "+strMailSubject.length+" 内容 "+strMailSubject[0]);
if(strMailSubject[0].indexOf("=?GB_2312-80?") != -1)
strMailSubject[0] = StringUtil.replaceStr(strMailSubject[0], "=?GB_2312-80?", "=?GBK?");
try
{
if(strMailSubject[0].indexOf("=?ISO-8859-1?") != -1)
{
System.out.println("subject after decodeText =" + strMailSubject[0]);
strMailSubject[0] = new String(strMailSubject[0].getBytes("ISO-8859-1"));
}
else if(strMailSubject[0].indexOf("=?gb2312?") != -1)
{
strMailSubject[0] = new String(strMailSubject[0].getBytes("gb2312"));
}
else if(strMailSubject[0].indexOf("=?GB2312?") != -1)
{
strMailSubject[0] = new String(strMailSubject[0].getBytes("gb2312"));
}
else if(strMailSubject[0].indexOf("=?GBK?") != -1)
{
strMailSubject[0] = new String(strMailSubject[0].getBytes("GBK"));
}
else if(strMailSubject[0].indexOf("=?big5?") != -1)
strMailSubject[0] = new String(strMailSubject[0].getBytes("big5"));
else
{//正常字符集:ISO8859_1-->gb2312;主题ISO-8859-1-->gb2312;ISO-8859-1-->GBK;
strMailSubject[0] = new String(strMailSubject[0].getBytes("ISO-8859-1"), "gb2312");
}
strMailSubject[0] = MimeUtility.decodeText(strMailSubject[0]);
}
catch(UnsupportedEncodingException unsupportedencodingexception)
{
unsupportedencodingexception.printStackTrace();
cat.error("UnsupportedEncoding", unsupportedencodingexception);
}
}
this.subject = strMailSubject[0];
if(subject == null)
subject = "";
return subject;
}
wks9527
2003-01-10
打赏
举报
回复
void setSubject(String subject) throws Exception{
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
msg.setSubject("=?GB2312?B?"+enc.encode(subject.getBytes())+"?=");
}
用这个应该可能解决
beming
2003-01-10
打赏
举报
回复
试一下不用GB2312(直接转成ISO8859-1)或者用GBK(有没有可能是繁体)。
http://www.csdn.net/develop/read_article.asp?id=16102
http://www.csdn.net/develop/read_article.asp?id=16362
javamail
发送邮件 主题
乱码
解决
第90行,setSubject("")
java 邮件
乱码
_
javamail
收发邮件
乱码
问题
解决
最近在弄用
javamail
收发邮件,遇到一些
问题
,记录如下。...一般
标题
和正文的
乱码
都很好解决,但附件的
乱码
就很有
问题
。主要是在解码出错。这次遇到的编码方式有:1) 有GBK, GB2312, UTF-8等编码2) ...
javamail
中
文
乱码
解决
oj的那个发送邮件的主题总是
中
文
乱码
,查了好多文献也没能解决,最终发现一个完美的解决方案 ... (本人亲测,非常好用,适用于本地没有
问题
但是上线后邮件
标题
乱码
,
中
文没有
问题
的情况) 最
java mail 主题
乱码
_
JavaMail
邮件主题
乱码
的解决方法
很多朋友都使用过
javaMail
进行邮件发送,在邮件正文
中
的
乱码
容易解决。但邮件主题的
乱码
无论怎样转码总是显示一堆
乱码
。到底应该怎么处理呢?
JavaMail
中
的邮件主题需要进行BASE64编码,格式形如:=?GB2312?B?xPq1...
JavaMail
的Subject
乱码
问题
我的linux平台编码方式是utf-8,在用
javamail
发送邮件的时候,会遇到
标题
乱码
的
问题
。 解决办法是: 在emial.setSubject("发送
标题
"); 之前要设置System.setProperty("mail.mime.charset","UTF-8...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章