2010-12-02 21 views
1

Bonjour tous J'utilise des modèles de vitesse dans l'envoi de courriels et dans le modèle que j'ai quelques textes arabesL'arabe est affiché comme ????? dans le modèle vitesse

et lors de l'envoi du courrier électronique, le texte apparaît comme ?????????? je ne sais pas pourquoi:

encodage est réglé sur utf-8 avant d'envoyer l'e-mail ici:

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

i essayé d'ajouter le jeu de caractères dans la machine virtuelle, mais pas de chance:

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

des idées pourquoi un tel problème se produit?

Répondre

7

J'ai été capable de produire du texte en arabe (تجاوز سعة مكدس) sur un e-mail en texte brut envoyé depuis une application Spring. Le texte affiché correctement sur GMail ainsi que Thunderbird. Voici ma logique d'envoi de courrier électronique:

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

merci l'homme, c'est vraiment résolu le problème –

1

Avez-vous défini un paramètre velocity.properties? (en particulier input.encoding ou output.encoding) Si ce n'est pas le cas, essayez de les régler sur UTF-8.