Java Web request.getParameter中文乱码问题

近期项目遇到中文乱码问题,需要兼容很多请问,故又回顾了乱码的产生及解决,在此记录一下:

传递方(页面get/post)——>后台(经过Tomcat等服务器,以Tomcat为例)

2种情况:

1、URL形式:URL方式+参数访问、页面链接、表单get请求(http://XXX?key=value&key=value...)

解决:

a、new String(request.getParameter("XXX").getBytes("服务端编码"),"页面编码");

注:到服务端,经过Tomcat界面,需看Tomcat的server.xml文件的编码格式<Connector URIEncoding="utf-8" />

无则默认iso-8859-1,故看到好多地方直接是new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8")

b、前台js对URL转码,后台解码:

 js:encodeURI(encodeURI(url));

 后台:URLDecoder.decode(name,"UTF-8");

2、post请求

解决:request.setCharacterEncoding(“页面编码格式”),一般服务器端代码有过滤器filter,核实是否与页面编码格式一致即可。

 

感谢技术博客:http://www.jb51.net/article/80181.htm

你可能感兴趣的:(java)