我用JB2005开发,一个JSP页面中调用另一个JSP文件,形式如,(nysInput.jsp?ysbh=1001&ysmc=工资),并向其传值,如果传的值是中文,
在接收页面中接受到的值 String ysmc = request.getParameter("ysmc");   <%=ysmc%>   却是乱码,
我的页面不管是GBK编码,还是gb2312,试过都不行
<%@ page contentType="text/html; charset=GBK" %> 
<%@ page contentType="text/html; charset=gb2312" %>
请问如何解决?QQ:418876065,317917750,MSN:    [email protected]

解决方案 »

  1.   

    String ysmc = new String(request.getParameter("ysmc").getBytes("ISO-8859-1"), "GBK");
      

  2.   

    在每个页面都加个
    <%@page contentType="text/html; charset=gb2312"%>
      

  3.   

    因为你在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"
     />
      

  4.   

    在你的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"
     />加上这个,然后具体的传值时,加上String ysmc = new String(request.getParameter("ysmc").getBytes("ISO-8859-1"), "GBK");
      

  5.   

    发送:java.net.URLEncoder.encode(errmsg);
    接收:java.net.java.net.URLDecoder.decode(errmsg);
      

  6.   

    感谢楼上所有关心的朋友,在你们的帮助下,已经解决了这问题,尤其感谢huyc_fly