Spring i18n 问号而不是文本

Kad*_*rat 5 java spring localization internationalization

我有 i18n,但遇到俄语字母问题。我有问号?????而不是文字。配置:

@Bean
public LocaleResolver localeResolver(){
    CookieLocaleResolver resolver = new CookieLocaleResolver();
    resolver.setDefaultLocale(new Locale("ru"));
    resolver.setCookieName("locale");
    resolver.setCookieMaxAge(60 * 60 * 24 * 365 * 10);
    return resolver;
}

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

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

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(localeChangeInterceptor());
}
Run Code Online (Sandbox Code Playgroud)

我也在用百里香。

<h1 th:text="#{message}"></h1>
Run Code Online (Sandbox Code Playgroud)

Her*_*eri 0

只是猜测:在“addInterceptor”中,您正在自己手动构建 LocaleChangeInterceptor 。如果此类依赖于其他 spring bean(如 MessageSource),则不会注入这些 bean。找到一种方法让 spring 实例化 LocaleChangeInterceptor (例如,通过使用应用程序上下文的各种 getBean() 之一)。