最近我按照Sun关于Java Mail API的在线指南来发送电子邮件、下载电子邮件和下载附件。当谈到从电子邮件中提取附件时,我的代码看起来与这篇文章Download attachments using Java Mail非常相似。
但是,当用户发送带有越南语字符的电子邮件附件文件名时,我遇到问题,如下所示:hệ thống thông.xls
当代码尝试使用: bodyPart.getFileName() 获取文件名时,返回文件名如下: h? th?ng =?iso-8859-1?b?dGj0bmcueGxz?=
我尝试了以下方法,但没有成功
1) set Java VM parameter: -Dfile.encoding=UTF-8
2) try to look further into the Java Mail API on UTF-8 Character support, but cant find any
任何提示都会有所帮助。谢谢!
最佳答案
您可以使用 MimeUtility.decodeWord(bodyPart.getFileName()) 获取文件的实际名称。
由于邮件 header 只能包含 ASCII 字符,因此 RFC 2047 描述了如何对其他字符集进行编码,并且此方法按照 RFC 2047 中的指定对名称进行解码。
关于java Mail API接收带有越南字符的电子邮件附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3809753/