为什么我在js 用url 向action传中文参数的时候 在action 用request.getParameter() 接受的时候 显示的是乱码? 
    我js 代码如下:
  
     function goBut()
{
var sys =document.getElementById("select1").value;
var tab =document.getElementById("select2").value;
alert(sys);
alert(tab);
window.location.href="fieldDefine.do?method=findAllFieldDefineByTable&sysname="+sys+"&tablename="+encodeURIComponent(tab);
}弹出来的都有值, 就是tab里面的值是中文 传过去就是乱码。 我用encodeURIComponent(),escape(), 和在action里面用java.net.URLEncoder.encode(tab, "utf-8");解码 都没用,请高手解决...

解决方案 »

  1.   

    String str = new String(url.getBytes("ISO8859-1"), "GBK");
    也有可能 GBK 和 ISO8859-1 对调,记不清了
      

  2.   

    那就不清楚了,一般是在服务器里面用参数设置解决的
    又看了LZ的代码,解密是 java.net.URLDecoder.decode
    不是 encode
      

  3.   

    在action中设置response.setCharacterEncoding("utf-8")
    页面中获取的时候用request.setsetCharacterEncoding("utf-8")
    页面中属性页设下pageEncoding="utf-8"
    试下看有没有效果
      

  4.   

    lz 在jsp中采用这个 encodeURI(encodeURI(tab))
    然后在action中使用
    URLDecoder.decode(tablename,"utf-8");可以将中文的值进行转码。
      

  5.   


    tab = encodeURI(encodeURI(tab))tab = encodeURI(encodeURI(tab))
      

  6.   

    java code应该是这个
    java.net.URLEncoder.encode(tab,   "utf-8 ")
      

  7.   

    过滤器都没有用 如果是用url 传中文!
    说句实话 有中文我一定不用url传参.反而是用 hidden取代
      

  8.   

    window.location.href= encodeURI("fieldDefine.do?method=findAllFieldDefineByTable&sysname= "+sys+ "&tablename= "+tab); 用这个试下
      

  9.   

    encodeURIComponent是对中文进行utf-8编码lz你这个是get方式传递utf-8编码的中文
    String s=request.getParameter("tablename");
    s=new String(s.getBytes("iso-8859-1"),"utf-8");
    这个s就是你客户端传过来的中文
      

  10.   

    哈哈,这个我遇到过的。用get方式获得的参数,乱码问题是这样解决:
    你去tomcat安装目录下搜索server.xml文件。
    接着搜索8080端口。在<Connector/>其中加上一句:URIEncoding="UTF-8"
    另外你把便把统统改成一致的,UTF-8
      

  11.   

    HTTP/GET 汉字乱码问题是本版的周经帖,一周至少要出现一次!
      

  12.   

    js url传中文参数js
    url = encodeURI(url);
    url = encodeURI(url);  //注:转两遍java
    String name = request.getParameter("name");
    name = java.net.URLDecoder.decode(name, "utf-8");