Java / HTML编码问题(破折号变为 - )

时间:2016-07-01 14:20:58

标签: java html email encoding

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

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

我尝试了什么:我已经搜索了解决方案,并提出了this question,这让我觉得这是编码问题。我通过调用发送电子邮件的各种方法,但找不到任何设置编码的方法。我还检查了电子邮件模板本身,其编码设置如下:

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

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

或跟随该线程,它也提供解决方案Display special characters using System.out.println