标头是根据RFC 2047中描述的机制(即
enpred-word)编码的,该机制表示与
=?< encoding>
?B?<
enpred-bytes>_匹配的标头的部分
?=是字节编码的部分。所述 < 编码>说如何解释的字节数,和(因为它是
B风格,而不是
Q样式)的
< 编码字节>_是基64编码。
这都是相当复杂的。幸运的是,您可以使用静态
javax.mail.internet.MimeUtility.depreText()方法轻松处理此问题。这意味着您可以切换到此:
String filename = MimeUtility.depreText(bodyPart.getFileName());
实际上,最好也将其与下一行结合:
File f = new File("C:\Attachments", MimeUtility.depreText(bodyPart.getFileName()));
这样做比较好,因为它避免了构建文件名的麻烦,而不是手工完成所有工作。(这还意味着您可以将该文字路径名分解为某些配置位置。)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)