java-解决http提交的中文乱码问题

来源:互联网 发布:小米note软件搬家 编辑:程序博客网 时间:2024/05/18 02:26

首先声明该方法指的是java通过http方式提交中文参数时出现乱码的问题

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

request.setCharacterEncoding("utf-8");

也可以使用编码过滤器来解决,最常用的方法是使用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进行编码:例如:http://192.168.1.27:8080/authcentre/identity/addDept","company_id=7&parent_dept_id=0&dept_name=开发部

当然也有更简便的方法,那就是在tomcat配置URL编码格式:

修改tomcat的配置文件server.xml:
             <Connector URIEncoding="UTF-8" 
                 port="8080"   maxHttpHeaderSize="8192" />

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

原创粉丝点击