El correo electrónico enviado con la japonesa desde el vértice código ha roto las cadenas, cómo codificar?
-
30-09-2019 - |
Pregunta
Me escribió la página Visualforce que se puede enviar correo electrónico. Funciona bien en Inglés. Pero cuando he escrito japonés en sección del cuerpo de correo electrónico y enviarlo, mi bandeja de entrada de correo electrónico tiene signos de interrogación en vez de japonés.
texto del cuerpo en espectáculos de Gmail en todo ?
??????????????????????????
Creo que necesito para codificar la cadena? Pero, ¿cómo hacerlo en código Apex? EncodeUtil clase tiene algunos métodos, pero no hace falta ser de cadena para codificar.
código
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();
}
}
Solución
He encontrado la solución para que permítanme compartir ...
clase Messaging.SingleEmailMessage
tiene la función setCharset()
por lo que en el código en mi pregunta, sólo necesitaba para proporcionar codificación japonesa "SHIFT-JIS"
mail.setCharset('Shift-JIS');
Resuelto:)
Otros consejos
Se debe configurarlo para usar UTF-8 en lugar UTF-8
por lo que no se limitará a solo japonés.