GetPost请求中文乱码问题有效解决方法

Posted swbzmx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GetPost请求中文乱码问题有效解决方法相关的知识,希望对你有一定的参考价值。

1、针对Post方式提交的请求如果出现乱码,可以每次在request解析数据时设置编码格式:

也可以使用编码过滤器来解决,最常用的方法是使用Spring提供的编码过滤器,在Web.xml中增加如下配置(要注意的是它的位置一定要是第一个执行的过滤器):

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

该过滤器要做的其实就是强制为所有请求和响应设置编码格式:

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");

2.针对Get方式的乱码问题,由于参数是通过URL传递的,所以上面通过request设置的编码格式是不起作用的,此时可以在每次发生请求之前对URL进行编码:

修改tomcat的配置文件server.xml:
             <Connector URIEncoding="UTF-8" 
                 port="8080"   maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               connectionTimeout="20000" disableUploadTimeout="true" />

只需增加 URIEncoding="UTF-8"  这一句,然后重启tomcat即可。

以上是关于GetPost请求中文乱码问题有效解决方法的主要内容,如果未能解决你的问题,请参考以下文章

解决请求参数的中文乱码问题(getpost)

getpost

真正有效的centos中文乱码的解决方法

最有效的解决中文乱码的方法(配置过滤器)

request的中文乱码getpost处理方式

关于java代码提交HTTP POST请求中文乱码的解决方法