powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировка писем на разных ОС
2 сообщений из 2, страница 1 из 1
Кодировка писем на разных ОС
    #33494835
DCLXVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Как обычно проблемы с кодировкой :)
Отправляю e-mail с помощью javax.mail следующим образом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
Message msg =  new  MimeMessage(session);
...
msg.setContent(body, "text/html; charset=\"koi8-r\"");
...
msg.setSubject(subject);
...
Transport.send(msg);

body и subject формируются с использованием русских слов, получаемых из текстового файла примерно так:

Код: plaintext
1.
2.
ResourceBundle bundle = ResourceBundle.getBundle(Constants.TRANSLATION_BUNDLE);
...
String body = bundle.getString("transfer.fin.hhfile") + ...

Этот текстовый файл был преобразован с помощью native2ascii.
Если приложение работает под линуксом, то и заголовок и тело письма приходят в нормальном читаемом виде.
Если под виндой - то вместо нормального заголовка приходят закорючки, хотя тело имеет нормальный вид.

Под виндой помогло следующее:

Код: plaintext
1.
String encSubject =  new  String(subject.getBytes("KOI8_R"), "windows-1251");
msg.setSubject(encSubject);

Помогите разобраться, откуда берется разница на разных ОС и почему заголовок письма становится нечитаемым, а тело остается нормальным.
Спасибо.
...
Рейтинг: 0 / 0
Кодировка писем на разных ОС
    #33494868
Фотография syncat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 
Properties props = System.getProperties();
           
            props.put("mail.smtp.host", "mail.ru");
            props.put("mail.mime.charset", "cp1251");
            props.put("mail.mime.decodetext.strict",  "true");
            props.put("mail.smtp.allow8bitmime", "true");
            
            Session session = Session.getInstance(props,  null );
Я делаю так и винда/линух нормально с этим дружат.
Если использовать такие штуки типа
Код: plaintext
msg.setContent(body, "text/html; charset=\"koi8-r\"");
то результат вполне может быть разным
---------------------------------------
Код: plaintext
Registered L i nux user #391155
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировка писем на разных ОС
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]