Приложение Heroku не отображает символы кириллицы с кодировкой UTF-8 по умолчанию - PullRequest
0 голосов
/ 30 мая 2019

Я следую этому уроку Baeldung и, хотя языки меняются правильно, всякий раз, когда я пытаюсь перейти на язык, основанный на кириллице (болгарский, русский), символы - это просто вопросительные знаки.Я размещаю свое приложение на Heroku.

Я пытался выполнить heroku config:add LANG=en_US.UTF-8 в CLI Heroku, но это не имело никакого эффекта.

Это код для моих LocaleResolver, ReloadableResourceBundleMessageSource, LocaleChangeInterceptor и переопределенных addInterceptorsmethod

    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver slr = new SessionLocaleResolver();
        slr.setDefaultLocale(Locale.US);
        return slr;
    }

    @Bean
    public ReloadableResourceBundleMessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("classpath:messages");
        messageSource.setDefaultEncoding("UTF-8"); 
        return messageSource;
    }

    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
        lci.setParamName("lang");
        return lci;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(localeChangeInterceptor());
    }

Я ожидаю получить "Добре дошъл" (Добро пожаловать на болгарском языке), однако я просто получаю ???????вместо этого

РЕДАКТИРОВАТЬ 1 После добавления Heroku Locale Buildpack при попытке развернуть приложение в Heroku появляется следующая ошибка:

-----> Locale app detected
cat: /tmp/build_1406e9f58f41cacf3931deb52b55d687/.locales: No such file or 
directory
!     Push rejected, failed to compile Locale app.
!     Push failed

1 Ответ

0 голосов
/ 31 мая 2019

Если вы установили пакет сборки локали, удалите созданный файл .locales и пакет сборки, перейдя в настройки приложения Heroku.

Я исправил проблему, применив следующие настройки в моем файле application.properties:

spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true

Кроме того, отметим, что первая сборка после применения этих настроек может быть очень медленной - если вы собираете в Eclipse и привыкли к сборке приложения Heroku примерно за 1 минуту, имейте в виду, что это может занять более 5 минут. строить.

...