【问题标题】:JavaMail - Attachment filename not displaying UTF-8 characters correctlyJavaMail - 附件文件名未正确显示 UTF-8 字符
【发布时间】:2015-04-11 17:17:43
【问题描述】:

我正在尝试发送主题、邮件正文和附件文件名中可能包含 UTF-8 字符的邮件。

我能够发送 UTF-8 字符作为主题和消息正文的一部分。但是,当我发送具有 UTF-8 字符作为附件文件名的附件时,它无法正确显示。

所以我的问题是如何将附件文件名设置为 UTF-8?

这是我的部分代码:

MimeBodyPart pdfPart = new MimeBodyPart();
pdfPart.setDataHandler(new DataHandler(ds));
pdfPart.setFileName(filename);
mimeMultipart.addBodyPart(pdfPart);

后期编辑:

我换了

pdfPart.setFileName(filename);

pdfPart.setFileName(MimeUtility.encodeText(filename, "UTF-8", null));

它运行良好。 谢谢大家。

【问题讨论】:

  • 你能告诉我们你试图附加文件的代码吗?

标签: java


【解决方案1】:

我不知道你如何发送附件。如果通过tomcat服务器上传,可能是由conf/server.xml中URIEncoding的值引起的

【讨论】:

    【解决方案2】:

    如果 MIME 标头(如 SubjectContent-Disposition)包含非 ascii 字符,则必须进行 mime 编码。

    编码为“quoted printable”或“base64”。我推荐quoted-printable

    请看这里:Java: Encode String in quoted-printable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多