我在jsp中通过 设置 hidden button  的value为中文 ,我提交 
request.getParameter("name"); 获取的是正常中文但是我通过给该myjsp.jsp?name=中文  则需要通过下面方法才能得到正常
 String name = request.getParameter("name");
  if (name == null) name = "";
  String tname = new String(name.getBytes("iso-8859-1"), "gb2312");这是怎么回事?

解决方案 »

  1.   

    TOMCAT5.0以上的版本对post和get的处理方法不一样
      

  2.   

    因为你在URL地址后边直接使用了中文参数,所以导致乱码,两种解决方案:
    1.在传参数之前先把参数进行转码:java.net.URLEncoder.encode(errmsg);
    2.在你的Tomcat目录-->conf目录-->server.xml里找出这段:
        <Connector 
    port="8080"               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   debug="0" connectionTimeout="20000" 
                   disableUploadTimeout="true" <!--在里边加上这个参数-->URIEncoding="gb2312"
     />
      

  3.   

    同意:==〉lip009(深蓝忧郁) ( ) 信誉:100 utf8  好一点。
      

  4.   

    TOMCAT5.0 和5.5 又不一样
      

  5.   

    你这个是通过URL传递中文参数的,这肯定会出现问题.
    举一个简单的例子:
    china1.jsp用来发送
    <%@ page language="java"contentType="text/html; charset=GB2312" import="java.util.*,java.text.*"%>     
      <html>
      <body> 
      <%
      String str1 = java.net.URLEncoder.encode("刘宁","GB2312");
      System.out.println(str1);
      %>
      <a href="china2.jsp?name=<%=str1%>">你是谁</a>    
      </body>
      </html> 
    china2.jsp用来接收.
     <%@ page language="java" contentType="text/html;charset=GB2312" import="java.util.*"%>
     <%response.setContentType("text/html;charset=GB2312");%>  
      <html>
      <body>
      我是   
      <%=new   String(request.getParameter("name").getBytes("iso8859-1"),"gb2312")%>
      </body>
      </html>
    你再试试,他就可以把中文传送过去的.
      

  6.   

    同意lip009(深蓝忧郁)页面传值 用setEncoding转换下 应该正常