J2EE请求响应乱码问题

乱码分类

乱码分类

1、请求乱码(浏览器发送给服务器的数据,服务器收到数据解析出来乱码。)

1.1 GET请求乱码
解决原理:
String un = request.getParameter("***"); un = new String(un.getBytes("ISO-8859-1"), "UTF-8");
原因:
1、所有的请求参数都是带在url地址上的;
2、tomcat收到这个请求就会调用默认的编解码格式(ISO-8859-1)将其解码完成,并封装成request对象。
注 : (Tomcat服务器默认的编码解码格式是ISO-8859-1)。
解决方案:
去改服务器的配置文件:server.xml,在8080端口配置处添加一句URIEncoding="uft-8"。

1.2 POST请求乱码
原因:
1、请求带来的数据都在请求体中放着,tomcat并不着急解析请求体,一旦调动 request.getParameter("***"),tomcat将整个请求体按照默认的编码格式(ISO-8859-1)全部解析完成。
解决方案:
在调用 request.getParameter("***"),之前加入request.setCharacterEncoding("uft-8") (告诉tomcat请求体数据使用utf-8解码)

2、响应乱码(服务器 发送给浏览器的数据,浏览器收到,解析乱码。)

原因:
直接写出去的数据,浏览器并不知道数据的内容类型以及编码格式等,浏览器用默认格式(utf-8/gbk/…)打开发生乱码。
解决方案:
给浏览器的数据说明数据格式:response.setContentType("text/html;charset=utf-8);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值