Java 春季-百里香-野猫->;无法正确处理UTF-8字符

Java 春季-百里香-野猫->;无法正确处理UTF-8字符,java,spring-mvc,tomcat,utf-8,thymeleaf,Java,Spring Mvc,Tomcat,Utf 8,Thymeleaf,我试图在SpringMVC网页中显示UTF-8字符 utf-8值来自数据库。我已经将我的数据库转换为utf-8 我编写的web服务正在按预期显示值,但在网页中没有显示正确的值 下面是我的spring配置,请让我知道我做错了什么 我使用thymeleaf作为模板引擎: 百里香安全配置: <bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver"&

我试图在SpringMVC网页中显示UTF-8字符

utf-8值来自数据库。我已经将我的数据库转换为utf-8

我编写的web服务正在按预期显示值,但在网页中没有显示正确的值

下面是我的spring配置,请让我知道我做错了什么

我使用thymeleaf作为模板引擎:

百里香安全配置:

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

我还在我的web.xml中添加了ChareCerencodingFilter,如下所示:

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

编码滤波器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
强制编码
真的
我还尝试在tomcat配置中更改server.xml:

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

但它并没有如预期那样发挥作用: 它向我展示了????代替实际值。奇怪的是,当我使用实际值的Unicode值时,它就工作了

谁能告诉我我做错了什么或错过了什么

使用XML更新Ans配置

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


我必须在
thymeleafviewsolver
中设置字符编码,而不是在ServletContextTemplateResolver中设置字符编码。您应该尝试将utf添加到thymeleaf视图解析器中:

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