各位大哥大姐。小弟在做项目时遇到了一个情况jsp页面出现乱码“?”。只是。。这次有点奇怪jsp页面第一次显示时没有出现乱码。。但是,小弟传了一个参数到servlet页面在跳转到原来的同一个页面时。却全部都是乱码。。请问大家该怎么解决??万分着急就要答辩了。。请各位帮帮忙吧。。谢谢!!!!servlet代码:
        public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
        request.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
String Mes=new String(request.getParameter("Mes"));
request.setAttribute("Mes",Mes);
request.getRequestDispatcher("Messages.jsp").forward(request,response);
}

解决方案 »

  1.   

    说的不清楚,请用A,B,C表示
      

  2.   

    各位大哥大姐。小弟在做项目时遇到了一个情况jsp页面出现乱码“?”。只是。。这次有点奇怪jsp页面A第一次显示时没有出现乱码。。但是,小弟传了一个参数到servlet页面,然后再从servlet页面跳转到jsp页面A时。却全部都是乱码。。请问大家该怎么解决??万分着急就要答辩了。。请各位帮帮忙吧。。谢谢!!!!servlet代码:
      public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      request.setCharacterEncoding("gb2312");
    response.setContentType("text/html;charset=gb2312");
    PrintWriter out = response.getWriter();
    String Mes=new String(request.getParameter("Mes"));
    request.setAttribute("Mes",Mes);
    request.getRequestDispatcher("Messages.jsp").forward(request,response);
    }
    这下子清楚了吧。。各位大哥。。急等。谢谢。。
      

  3.   

    response.setContentType("text/html;charset=gb2312");
    设置的编码和页面的编码一致么?
      

  4.   

    恩,就是写一个filter,一切OK
      

  5.   

    是在servlet跳转的时候出现的乱码,那么可能涉及到你的web容器里面的编码格式!是tomcat还是什么?当然,最通用的解决办法是写一个filter进行编码过滤!这东西网上很多!
      

  6.   

    這個問題我也遇到過.
    就是因為servlet与页面的编码不一致造成的.
    LZ把编码都一致了就能解决相应问题.
    其实最好还是写个过滤器.这样能一劳永逸
      

  7.   

      容器中和页面的编码不一致造成的、 在页面用别的编码试试、例如:GBK
      

  8.   

    右击你的工程名,选择最后一个,Resource第一个,把Text File Encoding 里的Other换成UTF-8
      

  9.   

    jsp页面的编码是什么? jsp文件本身的编码呢? 你穿的什么数据?自己做过encode么? 是不是从数据库里面读取的数据? 如果是读出来的在控制台打印是不是乱码? 
    你的jdk的file.encoding是什么? 用什么什么服务器? 服务器的编码是什么?
    用ff的httpfox看下http头里面的编码是什么楼上的 过滤器虽然能解决很多问题,但不能解决所有问题,
      

  10.   

    把【空间】的编码和【页面及后台处理】编码都整一样的,在页面设置下encode,这样就可以避免很多不必要的麻烦,我也撞见不少,费老大的劲
      

  11.   

    post方式:filter
    get方式:server.xml
      

  12.   

      写个filter吧。是页面上可能是UTF-8
     建议你全部设置成UTF-8
      

  13.   

    你把String Mes=new String(request.getParameter("Mes"));
    改为String Mes=new String(request.getParameter("Mes").getBytes("你页面中的编码格式"));
    试试
      

  14.   

    估计是servlet传到页面的时候出乱码的  你先统一下servlet跟jsp的编码  最好在servlet传值的时候能够编码下 这样乱码应该能解决
      

  15.   

    如果他们说的仍然不能解决问题的话可以在jsp页面中用这个
    <%
      String key=new String(request.getParameter("key").getBytes("ISO-8859-1"),"gb2312"); %>
    关于那个response.setCharacterEncoding("gb2312");在 过滤器中是起作用的。在页面调用不行。另外欢迎加入我的java交流群(都是入门人才):73419082。
      

  16.   

    servlet 编码和 页面编码一样的么?
      

  17.   

    页面编码与servlet设置的响应编码不符
      

  18.   

    你传的参数是不是中文的 试试UTF-8