Die E-Mail mit dem japanischen abgeschickt von Apex Code-Strings gebrochen, wie zu kodieren?
-
30-09-2019 - |
Frage
Ich schrieb Visualforce-Seite, dass Sie E-Mail versenden können. Es funktioniert gut in Englisch. Aber wenn ich getippt Japaner im Körperabschnitt E-Mail und senden Sie es, meine E-Mail-Posteingang Fragezeichen anstelle von japanischen hat.
Text in gmail zeigt sich in allen ?
??????????????????????????
Ich glaube, ich brauche die Zeichenfolge zu codieren? Aber wie es in Apex Code zu tun? EncodeUtil Klasse paar Methoden hat, aber es dauert String nicht für die Codierung.
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();
}
}
Lösung
fand ich die Lösung so lassen Sie mich teilen ...
Messaging.SingleEmailMessage
Klasse Funktion setCharset()
so in dem Code in meiner Frage, ich brauche nur japanische Codierung bereitzustellen "SHIFT-JIS"
mail.setCharset('Shift-JIS');
Gelöst:)
Andere Tipps
Sie sollten es UTF8 anstelle UTF-8
zu verwenden, so dass Sie nicht nur auf Japanisch eingeschränkt werden.