乱码的解决

请求方式一般分两种:get 和 post,

       当请求方式是get时,会将要请求的参数放置在浏览器的地址栏中,也就是url中,这时会进行一个URLEncoding的编码,默认采用的是utf-8编码,服务器拿到这个http请求后,会生成一个request对象,并将http中的请求参数以iso8859-1解码,将参数键值对放在request域中,在我们的 doget 或者 dopost 方法中想要解决这个编码解码不匹配导致乱码的问题,只能采用先对参数值进行 iso8859-1 编码,再对结果进行 utf-8 解码才能解决这个乱码问题;

//对于get请求的乱码解决,先采用iso8859-1编码,在使用utf-8解码
String username = new String(request.getParameter("username").getBytes("iso8859-1"), "utf-8");

       对于请求方式是post方式就好解决了,调用request.setCharsetEncoding(“utf-8”)就可以了。

       当 response 中也有中文时,需要你设置浏览器的解码格式,需要调用response.setContentType(“text/html;charset=utf-8”);

//对于post请求,设置请求编码,防止乱码
request.setCharacterEncoding("utf-8");
//设置响应正文的编码和浏览器解码采用的编码
response.setContentType("text/html;charset=utf-8");

转载于:https://www.cnblogs.com/daimajun/p/6582552.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值