JavaMail中解决中文附件名乱码的问题

网上有很多类似的解决方案,很多是使用

if ((fileName != null) && (fileName.toLowerCase().indexOf("gb2312") != -1)){
    fileName = MimeUtility.decodeText(fileName);
}

来解决,但对应gbk编码的附件名,这里仍不能正确处理。解决的方法很简单,加入对gbk的判断即可

fileName = bodyPart.getFileName();

//解决中文附件名的问题
if ((fileName != null) && ( (fileName.toLowerCase().indexOf("gb2312") != -1) ||  (fileName.toLowerCase().indexOf("gbk") != -1) )){
    fileName = MimeUtility.decodeText(fileName);
}

你可能感兴趣的:(null,javamail)