【问题标题】:Java / HTML encoding issues (dash becomes –)Java / HTML 编码问题(破折号变为 -)
【发布时间】:2016-11-04 00:09:17
【问题描述】:

情况:我正在尝试修复一些使用 Java 后端使用 Velocity Mail Manager 发送自动电子邮件的代码。

问题:主题设置在Java代码中,如String subject = "Hello - what's next?";。然后将其设置为带有message.setSubject(subject); 的消息对象(MimeMessage)。但是,当发送电子邮件时,主题行呈现为:“Hello – what's next?”

我的尝试:我搜索了解决方案并提出了this question,这让我认为这是编码的问题。我研究了各种被称为发送电子邮件的方法,但找不到任何设置编码的方法。我还检查了电子邮件模板本身,其中的编码设置如下:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

我在寻找什么:我需要知道 a) 如何从我的代码中找出要在我的 HTML 中使用的编码,或 b) 如何设置主题的编码行 IN Velocity 邮件管理器。 (或 c)任何其他解决问题的技巧。)

谢谢!

【问题讨论】:

    标签: java html email encoding


    【解决方案1】:

    您应该尝试在字符串的构造函数中设置编码:

    subject = new String(subject.getBytes("UTF-8"), "UTF-8");
    

    【讨论】:

    • 你能解释一下这有什么帮助吗?
    【解决方案2】:

    使用data.replaceAll("â€", "-"); 对我来说很好。

    或者关注这个帖子也可以解决Display special characters using System.out.println

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 2016-01-23
      • 1970-01-01
      • 2011-08-25
      • 2022-11-22
      • 2020-11-18
      • 1970-01-01
      相关资源
      最近更新 更多