javamail接收邮件时主题的乱码问题

javamail接收邮件时主题的乱码问题,第1张

这个过程比较复杂,首先,你要使用msg.getContentType()来获取contenttype,找出里面的charset=来获取编码,如果这里面没有编码,则使用getHeader方法来获取"From","To","Subject"中的编码(至少会有一个有),这里面的编码以"=?"开头(形式一般为=?GBK?B?之类,其中的GBK就是编码),获取编码后,对应使用

String subject = msg.getHeader("Subject", ",", false)//优先使用getHeader来获取内容,不要使用getSubject,那个经过一次编码处理,你以后会很麻烦

if (!StringUtil.isNull(你获取的编码)

&&StringUtil.isNull(ParseCode.getCharSet(subject))) {//邮件主题中不含编码,则使用从From或To中获取的编码

subject = new String(subject.getBytes("ISO8859_1"),

你获取的编码)//这里转码

}

这样你就能获取所有中文主题了

邮件乱码一般是因为没有使用正确的字符集解码引起的,可以通过给邮件设置正确的语言编码解决。 打开邮件,单击【查看】菜单,指向【编码】,然后从子菜单中选择正确的语言编码。如果不清楚邮件所采用的语言编码,请单击【编码】子菜单中的【自动选择】菜单项,Foxmail将根据邮件内容,自动选择最合适的语言编码来显示邮件。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/33066.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-20
下一篇2023-02-20

发表评论

登录后才能评论

评论列表(0条)

    保存