SpringMVC - 参数中文乱码的问题

转自:https://blog.csdn.net/J080624/article/details/56015604

后台常常会根据@RequestParam 或者@PathVariable 等从URL或者Form Data 获取参数数据。

当其中有中文的时候,不可避免发生了乱码。。。

【首先说明GET方法:】

  • 方法一:修改Tomcat的server.xml

因为Tomcat默认使用ISO-8859-1进行解码的。

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

添加URIEncoding="utf-8"

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
  • 方法二:手动更改
String name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
//可以写个工具类。

【其次说明POST方法:】

  • 方法一:使用Spring的字符过滤器

配置在web.xml中:

<filter>
        <filter-name>encoding</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>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

要注意的是,这个过滤器一定要放在最前面。

  • 方法二:手动更改

 和GET一样。

猜你喜欢

转载自blog.csdn.net/Dongguabai/article/details/82991625
今日推荐