摘自:username2.iteye.com/blog/1597917
个人理解中文传送的时后需要转码:
js代码:
要进行两次转码才不会出现乱码(默认为UTF-8)
encodeURI(encodeURI(http://localhost/qq/index.jsp?title=专业));
java接收参数代码:
String title = request.getParameter("title");
title = URLDecoder.decode(title, "UTF-8");
java 编码:
http://localhost/qq/index.jsp?title=URLEncoder.encode(URLEncoder.encode(title,"UTF-8"));
本地开发时候没有乱码,可是到linux中出现乱码, 下面是解决的方法, 但没有找到乱码的原因,以下作为使用记录。
1传递中文
parent.location.href=queryURL+"?title="+encodeURI(encodeURI(title ) );
2 有存在iframe,则decode参数,后传递数据。
<%
String title = request.getParameter("title");
if(title !=null ){
title = java.net.URLDecoder.decode(title, "UTF-8");
//如果这里还是乱码则用下面的方法转码
// title=new String(title.getBytes("GBK"),"ISO8859-1");
}
%>
<iframe height="530" width="100%" src="newsList${ suffix}?c2str=${c2str}&tabid=1&title=<%=(title!=null?title:"")%>&area=${ !empty param.area? param.area:'' }" id="newsList" scrolling="no" frameborder="0"></iframe>
3第三个页面接收数据再次转码
title = URLDecoder.decode(URLDecoder.decode(title, "UTF-8") ,"UTF-8") ;
作为个人记录用。
总结:最后进行了两次编码,和两次解码。再没有出现乱码了。但为什么还是不清楚