Keyword: javamail MimeUtility 繁体字 乱码
在描述这个问题之前,先把一些包的包名,版本,用到的方法,以及大概情况贴上来,大家可以先对号入座再考虑往下看
包名:javax.mail.jar
版本:version 1.4 : 48.0, super bit
所涉及的类: javax.mail.internet.MimeUtility
类方法:javax.mail.internet.MimeUtility.decodeText(String arg0) / javax.mail.internet.MimeUtility.decodeWord(String arg0)
问题
很多人在使用javamail解析邮件主题,正文,或者附件名称的时候经常会遇到这样的问题,比如你肉眼看到的是繁体字,而解析出来的却是一个菱形的异常字符,比如��,而这种问题出现的根本问题大多数是因为MimeUtility没办法直接解码gb2312/GB2312编码的繁体字字符
不管是邮件主题,附件名还是正文,所有内容的编码都遵循以下格式:
=?gb2312?B?1/e3qCA=?=
第一个“=?”与“?”之间代表此字符串的编码
第二个“?”与"?"之间的B代表base64,如果是Q则代表 Quoted-Printable
第三个"?"与最后的“=?”之间的内容就是由前面指定的编码再由后续的转化而成的内容,例如上面是由gb2312编码转化成的字符串然后再由base64转化后的内容,包括邮件主题,附