Плохой JAR плохо кодирует на иврите
Я создал приложение Java, которое отправляет электронную почту на иврите.
Когда я запускаю его через Eclipse, все в порядке,
НО,
Когда я запускаю его через экспортированный файл Runnable JAR, все уже не в порядке!
Когда я получаю сообщение о мировоззрении, его совершенство:
מק"ט: 19 марта: 2014-09-16: 13:00:24 קט הפרוייקט: שם מזמין העבודה:
НО, когда я получаю массаж на Gmail, все это взломано:
× × ×§"ט: 19 ×" ×ª×§× 'ל ×': 2014-09-16 × '×©× ”×”: 13:00:24 ×©× ×”×¤×¨×•×™×™×§×˜: ×©× × × × - × × × ™ × × × × × × × × × × ×
Я попытался поиграть с настройками кодировки браузеров, но не повезло, теперь он установлен на Unicode-UTF 8. Мой проект в Eclipse настроен на UTF-8.
1 ответ
Решение
Я наконец получил это на работу,
использовал этот код:
// -- Create a new message --
final MimeMessage msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(username));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipientEmail, false));
if (ccEmail.length() > 0) {
msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(ccEmail, false));
}
msg.setSubject(title, "utf-8");
msg.setText(message, "utf-8");
msg.setHeader("Content-Type", "text/html; charset=UTF-8");
msg.setSentDate(new Date());
MimeBodyPart mbp1 = new MimeBodyPart();
try {
mbp1.setDataHandler(new DataHandler(
new ByteArrayDataSource(message.toString(), "text/html")));
} catch (IOException e1) {
e1.printStackTrace();
}
mbp1.setHeader("Content-Type","text/plain; charset=\"utf-8\"");
mbp1.setContent( message, "text/html; charset=utf-8" );
mbp1.setHeader("Content-Transfer-Encoding", "quoted-printable");
// create the second message part
MimeBodyPart mbp2 = new MimeBodyPart();
// attach the file to the message
try {
mbp2.attachFile(fileName);
} catch (IOException e) {
e.printStackTrace();
}
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
msg.setContent(mp, "text/html");