window.opener.location.href="<%=request.getContextPath()%>/ProductAction.do?method=zhenghao&zhenghao="+zhenghao+"&type="+type+"";
后台取值
String code = request.getParameter("zhenghao");
只要是中文就是乱码  
这种默认是get方式   如何改成  post方式呢··

解决方案 »

  1.   

    中文参数,一定要encodeURI编码的,有时候需要编码两次,..........
      

  2.   

    window.opener.location.href="<%=request.getContextPath()%>/ProductAction.do?method=zhenghao&zhenghao="+encodeURI(zhenghao)+"&type="+encodeURI(type)+"";
      

  3.   

    刚刚试了下,如果在encodeURI这个方法里面写中文的话,还是会乱码的!
      

  4.   

    你要改成post的标签的话,你有form吗?form里面有个method的属性,可以设置为post的
      

  5.   

    ······用JS 进行跳转的  
     <script type="text/javascript">
       function check(){
       var zhenghao = document.getElementById("zhenghao").value;
       var type = document.getElementById('type').value;     window.opener.location.href="<%=request.getContextPath()%>/ProductAction.do?method=zhenghao&zhenghao="+encodeURI(zhenghao)+"&type="+type+"";
        
    window.close();
       }
       </script>
      

  6.   

    js 客户端encodeURI 2次,encodeURI(encodeURI(zhenghao)),
    String code = request.getParameter("zhenghao");
    java 接受用java.net.URLDecoder.decode(code , "utf-8");再转下就OK了
      

  7.   

    接收过来再转
    new String(str.getBytes("GBK"),"iso8859-1")
      

  8.   

    java 接受用java.net.URLDecoder.decode(code , "utf-8");再转下就OK了我的服务器端是用C写的,C里没有这个函数啊。