Spring MessageSource.getMessage с аргументами, содержащими международные символы, которые отображаются как символы в кодировке ISO-8859 - PullRequest
2 голосов
/ 29 мая 2020

Я использую Spring Message с заполнителями для создания сообщения электронной почты. Аргументы для заполнителей содержат международные символы. После того, как основной текст сообщения электронной почты установлен с использованием метода getMessage() с сообщением, аргументами и локалью, и электронное письмо отправлено, полученное электронное письмо будет содержать значения заполнителей с символами ISO-8859. Как обеспечить сохранение аргументов в кодировке UTF-8 при замене в свойстве сообщения.

Пакет возвращаемых свойств:

    @Bean
    public MessageSource emailProps() {
        ReloadableResourceBundleMessageSource messageSource = new 
        ReloadableResourceBundleMessageSource();
        messageSource.setBasenames("classpath:props/Email");
        messageSource.setDefaultEncoding("UTF-8");
        return messageSource;
    }

MailSender. java

    @Autowired
    private MessageSource emailProps;

    public void send(String to, String language,String name, String org_name) throws MessagingException {
        //org_name has values like "GmbH (Süd) München"

        //some code here

        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper=new MimeMessageHelper(message, 
        MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED, "UTF-8");

        //helper.setFrom, helper.setTo....

        helper.setText(emailProps.getMessage("security.email.body", new Object[] {name,org_name}, 
        Locale.GERMAN)+emailProps.getMessage("email.footer", null, Locale.GERMAN), true);

        //remaining part of the code

    }

В электронном письме org_name появляется как «GmbH (Süd) München».

Вопрос: что мне делать, чтобы значения аргументов в кодировке UTF-8 оставались как есть? У меня есть значения аргументов, поступающие из БД, и я проверил, что они сохраняют кодировку до шага, прежде чем они будут записаны в тело сообщения.

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