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里面代码就按照这种编码发送给浏览器,然后浏览器再以这种编码去解析这个页面,如果发现中文,那当时是乱码啦