Spring - Thymeleaf - Tomcat & # 8594; cannot handle UTF-8 character correctly

I am trying to display a UTF-8 character in a Spring-MVC webpage.

utf-8 values ​​come from the database. I have already converted my database to utf-8.

the web services that I wrote display the values ​​as expected, but the correct value is not displayed on the web page.

below is my spring configuration, please let me know what I'm doing wrong.

I use thimeleaf as a template engine:

Thymeleafe Configuration:

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

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

<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
    <property name="templateEngine" ref="templateEngine"/>
</bean>

I also added a CharecterEncodingFilter to my web.xml, as shown below:

   <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>

I also tried changing the server.xml file in the tomcat configuration:

   <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>

, : ???? . , Unicode , .

-, , , .

Ans XML

<bean id="templateResolver"
      class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".html"/>
    <property name="templateMode" value="HTML5"/>
</bean>

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

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

Encoding ThymeleafViewResolver ServletContextTemplateResolver

+4
1

utf thymeleaf view resolver:

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

Source: https://habr.com/ru/post/1609728/


All Articles