祝福所有人 我正在使用速度模板发送电子邮件 在模板中我有一些阿拉伯语文本
发送电子邮件时,文字显示为?????????? 我不知道为什么:
在此处发送电子邮件之前,编码设置为utf-8:
VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,templateName, "UTF-8",newModel);
我试图在vm中添加charset,但没有运气:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
为什么会出现这种问题?
答案 0 :(得分:7)
我能够在Spring应用程序发送的纯文本电子邮件中生成阿拉伯语文本(تجاوزسعةمكدس)。在GMail和Thunderbird上正确显示的文字。这是我的邮件发送逻辑:
public void send(String fromAddress, String fromName,
String toAddress, String subject,
String template, Map<String, Object> model) {
MimeMessagePreparator preparator = new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper message = new MimeMessageHelper(
mimeMessage, "UTF-8");
message.setTo(toAddress);
message.setFrom(new InternetAddress(fromAddress, fromName));
message.setSubject(subject);
message.setText(VelocityEngineUtils
.mergeTemplateIntoString(velocityEngine, template, "UTF-8",
model));
}
};
mailSender.send(preparator);
}
答案 1 :(得分:1)
您是否设置了velocity.properties? (特别是input.encoding或output.encoding)如果没有,请尝试将它们都设置为UTF-8。