<a href="test.jsp?name=学习"></a>如果要这样把汉字传到test.jsp为什么<%@ page contentType="text/html;charset=gb2312"%>这样设置以后还是乱码?谢过!!

解决方案 »

  1.   

    配置过滤器也不行,post方式可以配置filter,get配置了也没啥用
      

  2.   

    <a href="test.jsp?name=<%=URLEncoder.encode("学习","GBK")%>"> </a> 这样编码一下就可以了!
      

  3.   

    <%@ page contentType="text/html;charset=gb2312"%>Charset大写看可以吧
      

  4.   

    这里是中文名字需要直接传过滤器不行java2000先生,你这样也不行!我貌似没错呀,直接把你的复制进去也不行!!!
      

  5.   

    试试这两种方法:
    1.在test.jsp中用
    String s=(String)request.getParameter("name");
    s=new String(s.getBytes(("ISO-8859-1"), "gb2312"); 
    out.println(s);2.配置过滤器,虽然filter默认只处理,但修改以下参数filter也可对get请求过滤(这一点很重要):
      2.1
      修改$TOMCAT/conf/server.xml文件,在HTTP Connector或者AJP Connector的配置加上URIEncoding="gb2312"
     <...   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
          enableLookups="false" redirectPort="8443" acceptCount="100"
      connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="gb2312" />
    enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="gb2312"/> 
      2.2
      使用useBodyEncodingForURI="true". 表示用处理post的方式也对get请求处理
      <...  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                  enableLookups="false" redirectPort="8443" acceptCount="100"
          connectionTimeout="20000" disableUploadTimeout="true"   useBodyEncodingForURI="true" />
         enableLookups="false" redirectPort="8443" protocol="AJP/1.3" useBodyEncodingForURI="true" />这两种方法都可用,我一般用第二种。
      

  6.   

    10楼的方法1有问题吧
    s.getBytes(("ISO-8859-1"), "gb2312");  
    String好像没 getBytes(String string , String string) 这个方法
    方法2可以
    9楼说的解码该么解???
    用URLDecoder.decode(name , "GB2312") 不行
    java2000说的那个方法应试是要解码的吧
      

  7.   

    传值前编码:页面上这么写<a href="test.jsp?name=encodeURI('学习')"> </a> 
    服务器解码:接受到name 后,
         String str = java.net.URLDecoder.decode(name, "UTF-8");
      

  8.   

    恩,get请求需要转码的。
    假如你上一个页面用的是GBK就这么写就可以了
    String name = request.getParameter("name");
    name = new String(name.getBytes("ISO-8859-1"), "GBK");  
    这样就可以了。一般不要用url编码,需要解码的。而且可能受浏览器影响。