请求与响应的时候乱码问题原理

 1 乱码:
 2 
 3 请求乱码:
 4 get:
 5 
 6 1.修改tomcat中server.xml
 7 URIEncoding="UTF-8"  服务器采用utf-8的字符集编码 来进行 解码和编码
 8 默认的编码格式 是 ISO-8859-1
 9 
10 2.new String(sname.getBytes("ISO-8859-1"),"UTF-8")
11 浏览器以utf-8编码发送数据 ,服务器默认以ISO-8859-1解码,发送数据给servlet,servlet中需要再以ISO-8859-1格式 获得字节,然后 按照utf-8的字符集 解码
12 
13 post:    request.setCharacterEncoding("UTF-8");
14 设置请求数据以utf-8方式 编码 解码,这种方式只对 体提交方式有效
15 
16 
17 响应乱码:
18 
19 response.setCharacterEncoding("UTF-8"); 只是说明服务器 对客户端 响应数据 是以UTF-8 方式,响应,但是 浏览器以何种方式 阅读数据 不受控制!! 
20 
21 response.setContentType("text/html;charset=UTF-8"); 以UTF-8 方式 响应数据,并提醒浏览器 以这种方式 阅读
22 
23 response.setContentType("text/html;charset=UTF-8") 可以完全替代 response.setCharacterEncoding("UTF-8")
 1 乱码问题:           ASCII码值
 2 
 3 请求的时候乱码:
 4 get提交
 5 ***********方式一
 6 String name=request.getParameter("uname");
 7 byte[] bs=name.getBytes("ISO-8869-1");//获得客户端编码的字节数组
 8 String sname=new String(bs,"utf8");//把字节数组解码成utf-8的字符串
 9 
10 ***********方式二   只针对头(get)提交方式
11 在tomcat的server.xml中设置为URIEncoding="utf-8"
12 
13 
14 post提交
15 方式一同get的方式一
16 ***********方式二   只针对体提交方式
17 request.setCharacterEncoding("utf-8");
18 
19 
20 
21 响应的时候乱码:
22 response.setCharacterEncoding("utf-8")//AJAX可以
23 response.setContentType("text/html;charset=UTF-8");

 第三种乱码问题:

无理论怎么设置request.setCharacterEncoding("utf-8")还是request.setContentType("text/html,utf-8");出现页面原本的数据和session取出来的数据一个乱码一个不乱码,或者都乱码的情况,看看jsp页面的是否设置了<%@ page  language="java" import="java.util.*" pageEncoding="UTF-8"%>

这个jsp中引入的page标签,
language 表示语言是java,
import类似于java类中的import就是把包导入进来,这样在jsp才可以调用包中的类,
pageEncoding表示页面的编码格式

转载于:https://www.cnblogs.com/1020182600HENG/p/6089310.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值