日期:2014-05-16 浏览次数:20387 次
编写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"); ?
?