我在jsp页面有一个链接,跳到一个 action,带了两个参数     <a   href="${ctx}/employee.do?method=toAdd&name=${e.empName}&dept=${e.depName}">授权</a>     在action里面再取值     String name = request.getParameter("name");
     String dept = request.getParameter("dept");     String username = URLDecoder.decode(name, "UTF-8");
     String deptname = URLDecoder.decode(dept, "UTF-8");
在通过转发到另一个页面     return mapping.findForward("ssss");  到一个页面页面再显示值:     部门名称:  ${deptname }显示的时候乱码,我在action里面打印值,确定值是第一次传过来的时候乱码的,
  之前没有通过 URLDecoder类解码,姓名没有乱码,部门名称乱码了,现在修改后效果是一样的,
请问还有什么办法解决????

解决方案 »

  1.   

    <Connector port="8080" maxHttpHeaderSize="8192" minProcessors="10" maxProcessors="100"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75" debug="0" 
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>如上修改tomcat的service.xml文件对应的Connector元素的内容,可以解决乱码问题
      

  2.   

    通过get方式传递中文参数的时候必须要经过编码的,楼主可以用URLEncoder编码之后再通过get提交,action中接收到之后用URLDecoder解码即可
      

  3.   

    你是用get方式提交的,那么你可以在tomcat里面加上URIEncoding="utf-8"来处理.
      

  4.   

    呵呵,其实有个最简单的方法String question = new String(request.getParameter("question").toString().getBytes("ISO-8859-1"), "utf-8"); // 转码直接这样就行了~~~
    项目中也碰到这个问题了,解决了
    希望对楼主有帮助~~~~
      

  5.   

    1.做一个过滤器。把编码设为相同的编码方式。
    2.也可以把jsp页面中的编码方式改为UTF-8,然后tomcat配置文件中,设置URIEncoding="UTF-8",重启一下tomcat。
      

  6.   

    request.setCharacterEncoding("utf-8");  //解决中文乱码
    挂号内的字符编码自定,但要和整个界面的编码方式一致
      

  7.   

    get是以url方式提交的,设置过滤器没用,不经过过滤器;request.setCharacterEncoding("utf-8");也没用。修改service.xml中connector参数最省事,或者通过new String()转换编码的方式也可以,每次都要转换,麻烦一点就是。