情况:我正在尝试修复一些使用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)解决问题的任何其他技巧。)
谢谢!
答案 0 :(得分:1)
您应该尝试在字符串的构造函数中设置编码:
subject = new String(subject.getBytes("UTF-8"), "UTF-8");
答案 1 :(得分:0)
使用data.replaceAll("â€", "-");
对我来说很好。
或跟随该线程,它也提供解决方案Display special characters using System.out.println