البريد الإلكتروني مع اليابانية المرسلة من رمز Apex لديه سلاسل مكسورة ، وكيفية تشفير؟
-
30-09-2019 - |
سؤال
كتبت صفحة 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
لذلك لن تقتصر على اليابانية فقط.
لا تنتمي إلى StackOverflow