2014-10-17 26 views
9

Jak sama nazwa wskazuje, mogę tylko dodać, że jeśli wprowadzę ą ręcznie ręcznie w pliku html, to jest w porządku.Wiadomości z pliku .properties nie wyświetlają znaków UTF-8.

ViewResolver:

<bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver"> 
    <property name="prefix" value="/WEB-INF/templates/" /> 
    <property name="suffix" value=".html" /> 
    <property name="templateMode" value="HTML5" /> 
    <property name="cacheable" value="false"/> 
    <property name="characterEncoding" value="UTF-8"/> 
</bean> 

<bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine"> 
    <property name="templateResolver" ref="templateResolver" /> 
</bean> 

<bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver"> 
    <property name="templateEngine" ref="templateEngine" /> 
    <property name="characterEncoding" value="UTF-8"/> 
    <property name="order" value="1"/> 
</bean> 

pom.xml:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 

przykład wejścia html:

<h2><p th:text="#{homepage.greeting}">Welcome</p></h2> 

wewnątrz znacznika w html:

<meta charset="UTF-8"/> 

W IntelliJ Idea mam ustawione kodowanie projektu na UTF-8, domyślne kodowanie dla plików właściwości do UTF-8 enter image description here

I szczerze nie mam pojęcia gdzie jest problem. Po zmianie lokalizacji na pl, jest to wynik: enter image description here

Przepraszamy, ale nie mogę jeszcze dodać zdjęć. Każda pomoc będzie bardzo ceniona.

Wypróbowałem ten filtr w web.xml, wciąż bez powodzenia.

<filter> 
    <filter-name>encodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>forceEncoding</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>encodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
+0

Dzięki za dodanie zdjęć. – Sikor

+0

działa dla mnie. dzięki – pagurix

Odpowiedz

14

Okej, wymyśliłem to. Oto oferta:

miałem następujący kod:

<bean id="messageSource" 
     class="org.springframework.context.support.ResourceBundleMessageSource"> 
    <property name="basename" value="messages" /> 
</bean> 

Wariant 1: Wystarczy dodać to jako inną nieruchomość:

<property name="defaultEncoding" value="UTF-8"/> 

Opcja 2: Zmieniono go do :

<bean id="messageSource" 
     class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <property name="basename" value="classpath:messages"/> 
    <property name="defaultEncoding" value="UTF-8"/> 
</bean> 

Jeśli zmienisz go, aby ponownie załadować, pamiętaj, aby zmienić wartość właściwości z "messages" na "classpath: messages". Z jakiegoś powodu nie mógł znaleźć pakietu komunikatów, jeśli go nie zmieniłem.