Java Mail Body Part getFileName无法读取application / octet-stream数据

时间:2014-01-29 18:25:35

标签: javamail decoding

我试图通过BodyPart类读取附件的文件名。我正在调用BodyPart getFileName方法。

对于任何内容类型“application / octet-stream”,我得到的文件名不正确如下:

  

=?Windows-1252?Q?(07)_HQ14_MAtv_Qu = E9bec_Grille_HIVER_2014_Semaine_du_17 _?= =?Windows-1252?Q?f = E9vrier_v1.xlsx?=

什么时候应该读这样的东西:

  

(08)HQ14MAtvQuébecGlailleHIVER 2014 Semaine du24ffévrierv1.xlsx

是否有任何实用程序可以将八位字节流成功解码为可读输出?

1 个答案:

答案 0 :(得分:1)

我找到了解决方法。实际上有一种实用方法可以解决这个问题。

如果将文件名字符串传递给MimeUtility.decode方法,它将返回具有正确文件名的字符串。请参阅更多信息:

http://docs.oracle.com/javaee/1.4/api/javax/mail/internet/MimeUtility.html#decodeText

例如:

String realFileName = MimeUtility.decode(“=?Windows-1252?Q?(07)_HQ14_MAtv_Qu = E9bec_Grille_HIVER_2014_Semaine_du_17 _?= =?Windows-1252?Q?f = E9vrier_v1.xlsx?=”)将返回“(07) HQ14MAtvQuébecGlailleHIVER 2014 Semaine du17févrierv1.xlsx“。