get、post、cookie乱码问题解决

设置页面字符编码格式UTF-8

处理 get请求的乱码方式
01. 治标
需要对个中文的字符 进行转码操作! 太麻烦

重构字符串

new String(“中文”.getBytes("iso-8859-1“),“utf-8”);
02. 治本
在tomcat——conf文件夹中找到server.xml文件中connector节点!
新增URIEncoding="utf-8"

useBodyEncodingForURI="true"  (二选一,都写则 useBodyEncodingForURI起作用)

针对于post请求乱码方式的解决方案
01. 治标

重构字符串

new String(“中文”.getBytes("iso-8859-1“),“utf-8”);


request.setCharacterEncoding("utf-8"); 设置请求的编码格式
response.setCharacterEncoding("utf-8"); 设置响应的编码格式//一般不写,

page指令里面contentType设置了charset.响应的编码格式
每个jsp页面都必须加上这些代码!! 有点麻烦
02. 治本

也可以使用编码过滤器来解决,最常用的方法是使用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");

cookie----中文

转码:URLEncoder.encode(" ","utf-8")

解码:URLDecoder.decode(" ","utf-8")

原文地址:https://www.cnblogs.com/javaxiaodoufu/p/7349993.html