2016-03-26 10 views
2

ロシアの文字に問題があります。テキストの代わりに疑問符?????があります。構成:テキストの代わりに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()); 
} 

また、私はThymeleafを使用しています。

<h1 th:text="#{message}"></h1> 
+0

メッセージソースからのロシア語の文字のみですか?あなたはページでロシアの手紙を見ることができますか? –

+0

@KenBekovはい、メッセージソースからの文字のみです。はい、できます –

+0

メッセージファイルを間違ったエンコーディングで保存した可能性があります。 utf-8エンコーディングで保存されたロシア語メッセージを含むファイルを確認します。 –

答えて

0

「addInterceptor」では、手動でLocaleChangeInterceptorを作成しています。このクラスが他のSpring Bean(MessageSourceなど)に依存する場合、これらはインジェクションされません。 SpringにLocaleChangeInterceptorをインスタンス化する方法を見つけます(たとえば、アプリケーションコンテキストのさまざまなgetBean()の1つを使用して)。

+0

残念ながら、それは '仕事をしない –

関連する問題