java如何解析mime编码_javamail中MimeUtility解码繁体字的问题

本文介绍了在使用JavaMail解析邮件时遇到的MimeUtility解码繁体字出现菱形异常字符的问题。通过将GB2312编码替换为GBK并使用MimeUtility.decodeText进行解码,成功解决了解码问题。详细步骤包括替换编码标识和解码过程。
摘要由CSDN通过智能技术生成

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转化后的内容,包括邮件主题,附

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值