Java-кодировка не английских символов - PullRequest
8 голосов
/ 30 марта 2010

Используя приведенный ниже код, я могу отправить электронное письмо, написанное не на английском языке, и хотя тема отображается правильно, тело выглядит как бред.
Есть идеи?
Спасибо

public void postMail(String recipient, String subject, String message, String from) throws MessagingException, UnsupportedEncodingException {

            //Set the host smtp address
            Properties props = new Properties();
            props.put("mail.smtp.host", "mail.infodim.gr");

            // create some properties and get the default Session
            Session session = Session.getDefaultInstance(props, null);

            // create a message
            Message msg = new MimeMessage(session);

            // set the from and to address
            InternetAddress addressFrom = new InternetAddress(from);
            msg.setFrom(addressFrom);

            InternetAddress addressTo=new InternetAddress(recipient);
            msg.setRecipient(Message.RecipientType.TO, addressTo);

            // Setting the Subject and Content Type
            msg.setSubject(subject);

            msg.setContent(message, "text/plain");
            Transport.send(msg);

        }

Ответы [ 3 ]

18 голосов
/ 30 марта 2010

Попробуйте:

msg.setContent(message, "text/plain; charset=UTF-8");

Редактировать Изменено на text/plain.

7 голосов
/ 14 октября 2011

Вместо

msg.setContent(message, "text/plain");

я бы написал

Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(message, "text/plain; charset=ISO-8859-7");
mp.addBodyPart(mbp);

msg.setContent(mp);

Я угадал ISO-8859-7 от вашего имени, потому что эта кодировка для греческого языка, но, возможно, вы можете выбрать ее более правильноИли, может быть, UTF-8 работает для вашего случая.

0 голосов
/ 11 марта 2016

Если ничего не помогает, попробуйте изменить кодировку ваших исходных файлов (включая файлы .java) на UTF8. В Eclipse это делается через Window -> Preferences -> General -> Workspace: Кодировка текстового файла. У меня был CP1252 по умолчанию для моих текстовых файлов.

Я получаю текст из файлов .properties. Изменение их на UTF8 не помогло. Это безумие, но переключение моих файлов .java на UTF8 решило мою проблему!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...