rt,在一个servlet中进行跳转
RequestDispatcher dispatcher = request.getRequestDispatcher("/filenotfound.jsp?filename="+URLEncoder.encode(filename,"utf-8"));
在另一个jsp页面
  <%filename=java.net.URLDecoder.decode(request.getParameter("filename"),"utf-8"); %>
结果中文字符显示乱码,request和response没有设置过编码方式servlet

解决方案 »

  1.   

    不转码也为乱码?
    改为
     <%filename=new String(request.getParameter("filename").getBytes("iso-8859-1"),"utf-8"); %>
      

  2.   

    URLEncoder.encode(filename,"utf-8")
    一次编码是不够的!像你这种情况需要两次编码,request.getParameter("filename")已经解了一次码,所以你的代码实际上是一次编码,两次解码,一定会出现问题。
      

  3.   

    最好不要用URL传参的方式,用form表单提交啊
      

  4.   

    URLEncoder.encode(URLEncoder.encode(filename,"utf-8"),,"utf-8")
      

  5.   

    为什么要用url传递中文参数呢?不同的浏览器编码方式都不一样。两次编码可在一定程度上解决中文参数问题。
      

  6.   

    统一用utf8编码:response.setContentType("text/html;charset=utf-8");
    request.setCharacterEncoding("utf-8");
      

  7.   

    new String(request.getParameter("filename).trim().getBytes("ISO-8859-1"),"utf-8")