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

时间:2017-02-15 15:23:13

标签: java character-encoding javamail 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。 总是当有斯堪的纳维亚字母时,即使我可以在消息中看到它,文件名也是null,但在其他情况下(文件名不包括scandic字母)getFileName工作正常。在“正常”情况下,fileName部分是这样的:

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

我尝试设置属性properties.setProperty(“mail.mime.decodefilename”,“true”),但它没有帮助。

0 个答案:

没有答案