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();
            }
}
War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top