关于get和post方法中文乱码问题

1、显示request里面的中文参数出现乱码

1种万能的方法,不管get和post,假定我们要显示的是放在request里面的中文,那么可以这样:

String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");

参数拿出来的时候顺便转换了一下,那么显示是一定不会出现乱码的


1.1、post方法

一般情况下,表单尽量用post方法,然后在后台拿表单提交的数据的时候,先设置一下request里面的编码

request.setCharacterEncoding("gb2312");

就可以避免乱码了,好像get和post的时候,默认使用的编码都是ISO那个,而post方法是把参数都放在了请求体里面了


1.2、get方法

会出现get方法应该都是因为提交数据的时候用了get方法吧,但我们提交数据一般最好都采用post方法

用get方法提交数据的时候,参数使用了ISO那个编码,而且把编码后的数据加在了URL上,所以处理数据的时候,用

request.setCharacterEncoding("gb2312");是不可能起作用的,因为这个语句设置的是request里面的编码

而这个时候我们拿到的参数,是在URL那里拿的

具体要解决这个办法,网上也有说改tomcat的,但是相当麻烦,我觉得自己用的时候注意一下应该就可以吧



2、显示JSP页面上的中文[譬如按钮里面的文字]出现乱码

这个一般都是因为JSP文件页面设置的代码有问题

即,<%@ page contentType="text/html; charset=utf-8" %>

这个语句,决定了从服务器返回到浏览器使用的编码

如果我设置的是<%@ page contentType="text/html; charset=ISO.." %>,那么这个JSP里面代码就按照这种编码发送给浏览器,然后浏览器再以这种编码去解析这个页面,如果发现中文,那当时是乱码啦


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值