Весенняя загрузка тимелина не может разрешить сообщения араби c - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь создать двуязычное приложение Spring Boot 2.2.4 thymeleaf (французский и арабский c), вот конфигурацию, которую я использовал, проблема в том, что когда я переключаюсь на арабский c, я получаю это ' ?????? ?????». Я пробовал так много кодировок символов, но ничего не получалось.

@Configuration
@EnableWebMvc
@ComponentScan
public class ThymeleafConfiguration implements WebMvcConfigurer {
    @Bean
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(thymeleafTemplateResolver());
        return templateEngine;
    }

    @Bean
    public SpringResourceTemplateResolver thymeleafTemplateResolver() {
        SpringResourceTemplateResolver templateResolver
                = new SpringResourceTemplateResolver();
        templateResolver.setPrefix("/WEB-INF/classes/templates/");
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode("HTML5");
        templateResolver.setCharacterEncoding("UTF-8");
        templateResolver.setCacheable(false);

        return templateResolver;
    }

    @Bean
    public ViewResolver viewResolver(){
        ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver();
        thymeleafViewResolver.setTemplateEngine(templateEngine());
        thymeleafViewResolver.setCharacterEncoding("UTF-8");
        return thymeleafViewResolver;
    }
}

РЕДАКТИРОВАТЬ: После закрытия и повторного открытия проекта я заметил, что содержимое арабского c в messages_ar.properties преобразуется в '?????? ?? ???? '

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

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

https://blog.jetbrains.com/idea/2013/03/use-the-utf-8-luke-file-encodings-in-intellij-idea/

0 голосов
/ 28 апреля 2020

Я думаю, что этот параметр (тимелист) хорош сейчас. но я думаю, вам нужно добавить пружинные настройки HTTP-кодировки.

Веб-свойства - Веб-свойства

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

CharacterEncodingFilter

@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        filter.setForceEncoding(true);
        // .... 
    }
}

@Bean
public FilterRegistrationBean filterRegistrationBean() {
    FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
    characterEncodingFilter.setForceEncoding(true);
    characterEncodingFilter.setEncoding("UTF-8");
    registrationBean.setFilter(characterEncodingFilter);

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