Письмо с японским, отправленное с кода апекса, содержит разорванные строки, как кодировать? - PullRequest
1 голос
/ 10 ноября 2010

Я написал страницу 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();
            }
}

Ответы [ 2 ]

3 голосов
/ 10 ноября 2010

Я нашел решение, поэтому позвольте мне поделиться ...

Messaging.SingleEmailMessage класс имеет функцию setCharset()

, поэтому в коде моего вопроса мне просто нужно было предоставить японскую кодировку"SHIFT-JIS"

mail.setCharset('Shift-JIS');

Решено:)

2 голосов
/ 10 ноября 2010

Вы должны установить вместо него значение UTF8 UTF-8, чтобы не ограничиваться только японским языком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...