Я написал страницу Visualforce, которую вы можете отправить по электронной почте. Он отлично работает на английском языке.
Но когда я набрал японский в разделе тела письма и отправил его,
В моем почтовом ящике вместо японского есть вопросительные знаки.
основной текст в gmail отображается во всех ?
??????????????????????????
Я думаю, мне нужно кодировать строку? Но как это сделать в коде Apex?
У класса EncodeUtil есть несколько методов, но он не принимает String для кодирования.
код
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();
}
}