网上有很多类似的解决方案,很多是使用
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);
}