2010-11-10 5 views
1

J'ai écrit une page Visualforce que vous pouvez envoyer un email. Cela fonctionne bien en anglais. Mais quand j'ai tapé le japonais dans la section de corps d'email et l'envoyez, ma boîte de réception d'email a des points d'interrogation au lieu du japonais.L'email avec le Japonais envoyé du code d'apex a cassé des chaînes, comment encoder?

corps du texte en gmail apparaît dans tous ?

?????????????????????????? 

Je pense que je dois encoder la chaîne? Mais comment le faire dans le code Apex? La classe EncodeUtil a peu de méthodes mais elle ne prend pas de chaîne pour l'encodage.

Code

public PageReference sendEmail() { 
    Messaging.SingleEmailMessage mail = new Messaging.singleEmailMessage(); 
      //subject 
      subject = 'my subject'; 
      mail.setSubject(subject); 
      //set sender name 
      mail.setSenderDisplayName('im sender'); 
      //set recipient 
      emailTo = '[email protected]'; //test sample email address 
      mail.setToAddresses(new String[]{emailTo}); 
      //set body 
       String bodyText = '送信者'; //add Japanese to body 
      mail.setPlainTextBody(bodyText); 

      try{ 
       Messaging.SendEmailResult[] resultMail = Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail }); 
       if(resultMail[0].isSuccess()) 
        response = 'ok sent!'; 
       else{ 
        response = resultMail[0].getErrors().get(0).getMessage(); 
       } 
      }catch(System.EmailException ex){ 
       response = ex.getMessage(); 
      } 
} 

Répondre

2

J'ai trouvé la solution alors laissez-moi partager ...

classe Messaging.SingleEmailMessage a la fonction setCharset()

donc dans le code dans ma question, je devais juste fournir l'encodage japonais "SHIFT-JIS"

mail.setCharset('Shift-JIS'); 

Résolu :)

+2

J'aimerais pouvoir voter pour ma propre réponse .......... –

+2

Pensez à utiliser UTF-8 à la place; Ainsi, plus de langues que le japonais seront encodées correctement. – Ashe

+1

Voilà, masato-san;) – eyescream

2

Vous devez le configurer pour utiliser UTF8 au lieu de UTF-8 afin de ne pas vous limiter au japonais.

+0

Je suis d'accord mais malheureusement encore la plupart des applications japonaises utilisent SHIFT-JIS, dans l'avenir j'espère qu'ils vont commencer à utiliser UTF-8. –

Questions connexes