Как получить кодировку java.io.InputStream - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть служба, которая получает java.io.InputStream и данные из него для создания массажа пантомимы и отправки его с помощью SMTPServer по указанному адресу.Проблема в том, что кодировка символов входящих писем плохая, она не может отправлять следующие символы UTF8 (например: ÖÜß), но только в теме, приятель сообщения в порядке.Следующий код для ввода данных:

public void data(InputStream data) throws IOException { 
    Session s = Session.getDefaultInstance(new Properties());
    try {
    System.setProperty("mail.mime.charset", "UTF8");
    MimeMessage m = new MimeMessage(s, data);
                        .
                        .

Вопрос в том, как я могу проверить кодировку данных, поступающих из этого InputStream?Я хотел бы знать, что данные уже повреждены (неправильная кодировка), когда этот сервис получает их из другого приложения, или проблема в коде этого сервиса, где это сообщение MIME будет использоваться для манипуляций.Я знаю, что у InputStreamReader есть метод "getEncoding ()", но в этом коде нет InpuStreamREader, только InputStream. Некоторые другие сведения: я уже установил кодировку файла по умолчанию.По умолчанию кодировка сообщения mime будет установлена ​​из системной кодировки по умолчанию.После этого я установил «mime.mail.charset» как Systemproperty, а также в определение sprong bean.С другой стороны, я попытался установить тему с перегруженной версией mimemessage.setSubject (String subject, Encoding e).С другой стороны, я использую JavaMailSenderImpl, где я также устанавливаю кодировку (mailSender.setDefaultEncoding ("UTF8");).Я перепробовал все, что нашел как возможность, но ничто не помогло.Спасибо за помощь заранее!Если вам нужно больше из кода, я могу показать это ..

BR, Петер

...