2010-12-02 82 views
1

問候所有 我使用速度模板發送電子郵件 和模板我有一些阿拉伯文本阿拉伯語顯示爲?????在Velocity模板

和發送電子郵件時,文本看起來像?????????? 我不知道爲什麼:

編碼設置爲UTF-8在這裏發送電子郵件之前:

VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,templateName, "UTF-8",newModel); 

我嘗試添加字符集的虛擬機,但沒有運氣:

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

任何想法爲什麼會出現此類問題?

回答

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

謝謝你,真的解決了這個問題 – 2010-12-05 11:54:24

1

您是否有任何velocity.properties集? (特別是input.encoding或output.encoding)如果不是,請嘗試將這兩者都設置爲UTF-8。