javamail 发件人乱码问题

我的outlook是日文的
发email后用javamail收取邮件
String from = null;
from = messages[i].getFrom()[0].toString();
InternetAddress ia = null;
ia = new InternetAddress(from);
formNm=ia.getPersonal()
但是 当我发纯文本文件时
formNm正常显示
调试时ia 为 =?iso-2202-jp?B?4I2RY8/I?= zhengqx@htkr.com.hk

当我发带有背景的超文本时
formNm显示乱码
调试时ia 为 =?gb2312?B?4I2RY8/I?= zhengqx@htkr.com.hk

该如何正确解析?

1个回答

1、InternetAddress ia = new InternetAddress(mailFromAddress, mailFromDisplayName, "UTF-8");

2、或者试试
javax.mail.internet.MimeUtility.encodeText("私塾在线 admin@sishuok.com" , "UTF-8","B"));

3、我目前使用的是spring的MimeMessageHelper
this.helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");

你试试之上的吧。

zhengqx123456
zhengqx123456 当用超文本发邮件时 ia = new InternetAddress(from); ia在调试窗口显示 =?GB2312?B?QkFUx+mI87ncwO3K0iDgjZFjz8g=?= <zhengqx@htkr.com.hk> 发送邮件用的是GB2312 但上面的字符串怎样解析成正确的字符呢?
大约 8 年之前 回复
zhengqx123456
zhengqx123456 问题是解决了 我再outlook中 选项--邮件格式--国际选项--对于待发邮件首选此编码 选utf-8 收邮件时就不会乱码了 但这不是解决问题的最终办法 我不能让所有的发件人都用utf-8编码发邮件给我 outlook怎么就能解析出不同的编码呢
大约 8 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问