L'e-mail con inviato giapponese dall'apice codice è rotto le stringhe, come codificare?
-
30-09-2019 - |
Domanda
ho scritto pagina Visualforce che è possibile inviare e-mail. Funziona bene in inglese. Ma quando ho digitato giapponese nella sezione corpo del messaggio e inviarlo, la mia casella di posta elettronica ha punti interrogativi al posto di giapponesi.
il corpo del testo in spettacoli di Gmail in tutto ?
??????????????????????????
Credo di aver bisogno di codificare la stringa? Ma come farlo nel codice Apex? Classe EncodeUtil ha pochi metodi, ma non ci vuole String per la codifica.
codice
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();
}
}
Soluzione
ho trovato la soluzione in modo vorrei condividere ...
class Messaging.SingleEmailMessage
ha funzione setCharset()
così nel codice nella mia interrogazione, ho solo bisogno di fornire codifica giapponese "SHIFT-JIS"
mail.setCharset('Shift-JIS');
Risolto:)
Altri suggerimenti
Si consiglia di impostare in modo da utilizzare al posto UTF8 UTF-8
in modo che non sarà limitato al solo giapponese.