在tomcat6中,我用表单用get方法提交,但如果其中表单参数有中文,提交后接受到的就为就为乱码,
      我以前采取的解决方式是打开tomcat的server.xml文件,找到区块,加入如下一行:URIEncoding=”utf-8” >
      <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding=”utf-8”/>        这样写是完全可以把问题解决的,但是租服务器的公司不让改动它们的tomcat的任何配置,请问各位怎么办???
        注:因为我们要取到get方法提交的url,所以不能换成post方法,请问各位前辈,在不用改tomcat配置和仍热用get方法情况下,是否有其他中文乱码的解决办法,小弟急呀~~

解决方案 »

  1.   

    <a href="b.jsp?project_id=1&projectName='意见'">审批 </a> 参数传递时候使用&隔开,并且传递字符串时候要使用单引号,不能用双引号。
    在接受页面使用   <%=request.getParameter("project_id")  %> 
      <%=new String(request.getParameter("projectName").getBytes("ISO-8859-1"),"GBK")%> 
    因为projectName是汉字所以要进行编码转换,jsp页面传递的时候是使用的ISO-8859-1。
      

  2.   

    也可以用过滤器,或者如果你用Struts框架做的话,重写它核心类的process()方法,,,
      

  3.   


    到处都是这个问题
    Csdn就是为了解决乱码问题而存在的吗?
      

  4.   

    传中文字最好用
    URLEncoder.encode(String,"GBK"))
    URLDecoder.decode(String,GBK")
      

  5.   

    或者将你要的参数先转换为json 字符串   再用参数的方式传过去就可以了
      

  6.   

    你可以在request的时候加上编码,这样就不会有乱码,但每次传都要加
    很麻烦,或者如楼上说的,用过滤器
      

  7.   

    String name=  new String(request.getParameter("name").getBytes( 
    "ISO8859-1"), "GBK"); 

      request.setCharacterEncoding("ISO8859-1");   
      ad=request.getParameter("name");   
      byte[]   temp3   =   ad.getBytes("GBK");   
      String   str   =   new   String(temp3);   
      这样就是中文啦!
      

  8.   

    encodeURI(String)就OK了<a href="b.jsp?project_id=1&projectName=+encodeURI('意见')">审批 </a> 
      

  9.   

    1、在JS里对中文参数进行两次转码 var login_name = document.getElementById("loginname").value;  
    login_name = encodeURI(login_name);  
    login_name = encodeURI(login_name);  
    2、在服务器端对参数进行解码 String loginName = ParamUtil.getString(request, "login_name");  
    loginName = java.net.URLDecoder.decode(loginName,"UTF-8");  具体请见http://blog.csdn.net/Seven_23/archive/2009/09/02/4510670.aspx 
      

  10.   

    建议楼主数据库和传送的所有页面都设置utf-8,怎样的话有可能不会出错,也可以根据传值来追踪
      

  11.   

    以下方法仅在TOMCAT服务器上测试成功:
    JSP:
    var url = "<%=request.getContextPath()%>/TestEncodeAction.do?dispatch=encode&param=";
    url += encodeURIComponent("中文值");
    var form = document.forms[0];
    form.action = url;
    form.submit();TestEncodeAction.encode
    String param = new String(request.getParameter("param").getBytes("ISO-8859-1"), "UTF-8");
    System.out.println("param is: " + param);Console:
    param is: 中文值
      

  12.   

    我给你个过滤器代码。package common;import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;public class EncodeFilter implements Filter {
    public void destroy() {

    }
    public void doFilter(ServletRequest arg0, ServletResponse arg1,
    FilterChain arg2) throws IOException, ServletException {
    arg0.setCharacterEncoding("utf-8");
    arg2.doFilter(arg0, arg1);
    arg1.setCharacterEncoding("utf-8"); }
    public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub }}
    上面是一个过滤器,然后再web.xml里面定义
      <filter>
       <filter-name>encodeFilter</filter-name>
       <filter-class>common.EncodeFilter</filter-class>
      </filter>
      <filter-mapping>
       <filter-name>encodeFilter</filter-name>
       <url-pattern>/*</url-pattern>
      </filter-mapping>
    我觉得这个还蛮好用,但是编码格式要统一
      

  13.   

    10楼正解
    一般GBK转ISO-8859-1码
    在客户端进行2次编码(1次可能依然会有乱码问题)
    在服务器进行1次解码
    注意的是2端得编码要保持一致,UTF-8或者GBK
      

  14.   

    String param = new String(request.getParameter("param").getBytes("ISO-8859-1"), "UTF-8");