日期:2014-05-16  浏览次数:20387 次

jsp传值乱码问题解决

编写java web的程序,不可避免都要处理编码问题,最常见的问题就是中文乱码

大概的思路就是重新编码为gbk或者gb2312,分两种情况

一是post形式

二是get和AJax 形式

?

如果是post形式,只需要在获取参数前使用request.setCharacterEncoding方法设置的编码

?

如果是get和ajax形式,Tomcat对于GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码。可以使用以下两种方式解决get和ajax中文乱码问题:

?1。在前台使用java.net.URLEncoder.encode(str, "UTF-8")或js的encodeURI()进行统一的编码,然后在后台使用java.net.URLDecoder.decode(str, "UTF-8")进行解码。

?

2.在后台将String先按特定编码转换成字节数组,然后根据字节数组转换成“gbk”或“gb2312"的字符串。

?String str= new String(req.getParameter("str").toString().getBytes("utf-8"), "GB2312");

?

?