今天整理代码时偶然看到之前随意写的jms收发邮件的小程序,运行了一下发现一些中文乱码问题。总的来说就是编码使用的方式不用,有Base64,QP之类
String fileName = part.getFileName(); // 得到未经处理的附件名字
// 文件名一般都经过了编码
// base64解码
if (fileName.indexOf("B?") != -1) {
fileName = base64Decoder(fileName.substring(fileName.indexOf("B?") + 2, fileName.indexOf("?=") - 1));
}
// QP编码
else if(fileName.indexOf("Q?") != -1){
try{
fileName = MimeUtility.decodeText(fileName); //再重新解码
} catch(Exception e){
e.printStackTrace();
}
}