Плохой 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");
Другие вопросы по тегам