如何使用org.springframework.web.filter.CharacterEncodingFilter来纠正字符编码?

The*_*iot 16 spring hibernate character-encoding tomcat6

我需要一些帮助.

我把代码片段放在我的下面web.xml.

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

<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

在我的server.xml:

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
Run Code Online (Sandbox Code Playgroud)

我的jsp页面编码为UTF-8,我的mysql表编码为utf8_general_ci.

我的问题是每当我保存ñ它就变成了?.

当我尝试手动保存ñ在mysql终端时,它正确保存.我怀疑问题出在我的服务器或我的程序中.请帮忙.

小智 22

我成功尝试了这个web.xml!

<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>
Run Code Online (Sandbox Code Playgroud)


pal*_*res 7

要在春季靴子工作,你可以使用

@Bean
public FilterRegistrationBean filterRegistrationBean() {
    CharacterEncodingFilter filter = new CharacterEncodingFilter();
    filter.setEncoding("UTF-8");

    FilterRegistrationBean registrationBean = new FilterRegistrationBean();
    registrationBean.setFilter(filter);
    registrationBean.addUrlPatterns("/*");
    return registrationBean;
}
Run Code Online (Sandbox Code Playgroud)

另一个回应


DDK*_*DDK 5

确保您的jsp中包含以下代码段

encodingFilter

并确保它web.xmlencodingFilter文件中的第一个过滤器