最近几天做项目时再次遇到头疼的乱码问题,网上所说的方式我基本都试过了,依然不能解决我的问题,加过滤器、设置tomcat编码,统一前台和后台的编码格式这些我都试过了。还是不行郁闷啊!最后终于在一个论坛里看到一种办法,试了一下果然搞定了。记录下来以便以后使用,顺便总结下常用的乱码处理方法:
1.前台js传中文get方式乱码(能用post方式尽量用post方式传值乱码情况少得多)
后台接收参数时: String param = new String(request.getParameter("param").getBytes("iso-8859-1"),"utf-8");
我的问题使用第二种方法处置完成的 哈哈,
2.前台编码后台解码:
前台在JS里对中文参数进行两次转码
var login_name = document.getElementById("loginname").value;
login_name = encodeURI(login_name);
login_name = encodeURI(login_name);
建议可以直接写成 login_name = encodeURI(encodeURI(login_name));
在服务器端对参数进行解码
String loginName = ParamUtil.getString(request, "login_name");
loginName = java.net.URLDecoder.decode(loginName,"UTF-8");
这样就不会乱码了!希望能帮到看文章的人!