L'e-mail avec japonais de pointe envoyés code a cassé les chaînes, comment coder?
-
30-09-2019 - |
Question
J'ai écrit page Visualforce que vous pouvez envoyer un courriel. Il fonctionne très bien en anglais. Mais quand je tapais japonais dans la section corps e-mail et l'envoyer, ma boîte de réception e-mail a des points d'interrogation au lieu de japonais.
corps du texte dans des spectacles gmail dans tous ?
??????????????????????????
Je pense que je dois encoder la chaîne? Mais comment le faire dans le code Apex? classe EncodeUtil a peu de méthodes, mais il ne prend pas 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 = 'test@test.com'; //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();
}
}
La solution
J'ai trouvé la solution alors laissez-moi partager ...
classe Messaging.SingleEmailMessage
a la fonction setCharset()
dans le code dans ma question, je avais juste besoin de fournir l'encodage japonais "SHIFT-JIS"
mail.setCharset('Shift-JIS');
Résolu:)
Autres conseils
Vous devriez le mettre à la place utiliser UTF8 UTF-8
de sorte que vous ne serez pas limité à un peu japonais.