2016-03-26 8 views
2

Ich have i18n, aber habe Probleme mit russischen Buchstaben. Ich habe Fragezeichen ????? anstelle von Text. Konfiguration:Spring i18n Fragezeichen anstelle von Text

@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()); 
} 

Auch ich benutze Thymeleaf.

+0

Ist es nur für russische Briefe von Nachrichtenquelle? Kannst du russische Buchstaben in Seiten sehen? –

+0

@KenBekov ja, nur für Briefe aus der Nachrichtenquelle. Ja, ich kann –

+0

Es ist möglich, dass Sie die Nachrichtendatei in falscher Codierung gespeichert haben. Überprüfen Sie die Datei, die russische Nachrichten enthält, die in der UTF-8-Kodierung gespeichert sind. –

Antwort

0

Nur eine Vermutung: in "addInterceptor" konstruieren Sie den LocaleChangeInterceptor manuell selbst. Wenn diese Klasse von anderen Spring Beans (wie MessageSource) abhängt, werden diese nicht injiziert. Suchen Sie nach einer Methode, mit der spine den LocaleChangeInterceptor instanziieren kann (z. B. mithilfe eines der verschiedenen getBean() des Anwendungskontexts).

+0

leider funktioniert es nicht –

Verwandte Themen