2014-09-16 4 views
0

Я создал приложение java, отправляющее электронную почту на иврите.Runnable JAR bad Кодировка на иврите

Когда я запустить его с помощью Eclipse, все нормально,

НО,

Когда я запустить его с помощью экспортируемого Runnable JAR файл не все в порядке больше!

Когда я получаю сообщение о перспективе его идеальный:

מק"ט: 19 התקבל ב: 2014-09-16 בשעה: 13:00:24 שם הפרוייקט: שם מזמין העבודה:

НО, Когда я получаю массаж на Gmail, это все закодированные:

× × × × × × ×: 19 × × × × × × × × × × × × ×: 2014-09-16 × × × × × × ×: × ¨ × • × ™ × ™ × § × ~: × © × × ž × - × ž × ™ × Ÿ ×»× ¢ × '× • ׄד:

Я пытался играть с настройки кодировки браузеров, но такой удачи нет. Теперь он настроен на Unicode-UTF 8. Мой проект в eclipse установлен в UTF-8.

+0

Является ваш адрес электронной почты какой-нибудь текстовый файл, который считывается приложением Java перед его отправкой? Вы запускаете автономное приложение Java с консоли? Какую операционную систему ты используешь? – Gooseman

+0

письмо создается из текста, который был введен в приложение, его тип формы, который заполняет пользователь, и я просто отправляю данные по почте после. Я запускаю runnable jar двойным щелчком по нему, а не консолью, и я использую Win7 Pro x64. –

+0

Вы можете проверить кодировку, используемую в вашей электронной почте (когда она получена Gmail), прочитав [заголовки сообщений] (https://support.google.com/mail/answer/22454?hl=ru). Попробуйте найти что-то вроде 'Content-Type: text/plain; кодировка = UTF-8'. Если кодировка не UTF-8, должно быть что-то не так с вашим Java-приложением (возможно, с использованием кодировки по умолчанию вместо UTF-8) – Gooseman

ответ

0

я, наконец, получил его на работу,

использовал этот код:

// -- 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");