文件名中的Javamail和斯堪的纳维亚字母

文件名中的Javamail和斯堪的纳维亚字母,java,character-encoding,jakarta-mail,multipart,Java,Character Encoding,Jakarta Mail,Multipart,我从后端收到一条我试图读取的多部分消息。例如,该消息如下所示: Content-Type: image/jpeg; name*=UTF-8''jyrkik%C3%AF%C2%BF%C2%BFteinen.jpg Content-Transfer-Encoding: BASE64 Content-Disposition: attachment; filename*=UTF-8''jyrkik%C3%AF%C2%BF%C2%BFteinen.jpg 文件名为jyrkikäteinen.jpg。

我从后端收到一条我试图读取的多部分消息。例如,该消息如下所示:

Content-Type: image/jpeg; name*=UTF-8''jyrkik%C3%AF%C2%BF%C2%BFteinen.jpg
Content-Transfer-Encoding: BASE64 
Content-Disposition: attachment; filename*=UTF-8''jyrkik%C3%AF%C2%BF%C2%BFteinen.jpg
文件名为jyrkikäteinen.jpg。 总是当有斯堪的纳维亚字母时,即使我能在消息中看到它,文件名也是空的,但在其他情况下(文件名不包括斯堪的纳维亚字母),getFileName工作正常。在“正常”情况下,文件名部分如下所示:

Content-Disposition: attachment; filename=hellsinski_header.png

 MimeBodyPart content = (MimeBodyPart)multipart.getBodyPart(n);
     if(content.getDisposition() !=null && content.getDisposition().equals(BodyPart.ATTACHMENT)){
     content.getFileName(); // This is always null if scandic letters in name

我试图设置property.setProperty(“mail.mime.decodefilename”、“true”),但没有帮助。

也许这可以帮助您:您使用的是什么版本的JavaMail?应该在不需要设置任何属性的情况下处理此问题。文件名参数是使用RFC 2231.BTW编码的,这就是问题所在。com.sun.mail javax.mail 1.5.6这可能对您有所帮助:您使用的是什么版本的JavaMail?应该在不需要设置任何属性的情况下处理此问题。文件名参数是使用RFC 2231.BTW编码的,这就是问题所在。com.sun.mail javax.mail 1.5.6