البريد الإلكتروني مع اليابانية المرسلة من رمز Apex لديه سلاسل مكسورة ، وكيفية تشفير؟

StackOverflow https://stackoverflow.com/questions/4141799

سؤال

كتبت صفحة Visualforce التي يمكنك إرسال بريد إلكتروني. إنه يعمل بشكل جيد باللغة الإنجليزية. ولكن عندما كتبت اليابانية في قسم جسم البريد الإلكتروني وأرسله ، فإن صندوق البريد الإلكتروني الخاص بي له علامات أسئلة بدلاً من اليابانية.

يظهر نص الجسم في Gmail في كل شيء ?

??????????????????????????

أعتقد أنني بحاجة إلى تشفير السلسلة؟ ولكن كيف تفعل ذلك في رمز القمة؟ تحتوي فئة EncodeUtil على طرق قليلة ولكنها لا تتطلب سلسلة للترميز.

الشفرة

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();
            }
}
هل كانت مفيدة؟

المحلول

لقد وجدت الحل لذلك دعني أشارك ...

Messaging.SingleEmailMessage الفصل لديه وظيفة setCharset()

لذلك في الكود في سؤالي ، كنت بحاجة فقط لتوفير الترميز الياباني "SHIFT-JIS"

mail.setCharset('Shift-JIS');

تم حلها :)

نصائح أخرى

يجب عليك تعيينها لاستخدام UTF8 بدلاً من ذلك UTF-8 لذلك لن تقتصر على اليابانية فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top