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