在下初涉ssh整合,在项目的时候遇到一个奇怪的乱码问题。以下是我的struts.xml部分配置:
当我以http://localhost:8080/My_email_ssh/user_login访问的时候,返回的_login.jsp是乱码,但以其他方式访问返回的_login.jsp却不是乱码,以下是我的userAction的login方法:弄了很长时间都未能解决,求高手指点迷津。

解决方案 »

  1.   

    在login方法中加上reponse.setCharacterEncode("UTF-8");可能拼错了
      

  2.   

    BS项目乱码的原因分析:
    1.页面的默认编码是ISO-8859-1是存放英文字符的。不支持中文
    2.通过网络传递到tomcat服务器。而网络传输的默认字符集也是ISO-8859-1
    3.中文字符等其他特殊字符 UTF-8(gbk gb2312 big5)
    4.jvm的编译器是Unicode字符。解决方案:
    1.保证所有jsp页面都是统一的字符集,UTF-8(gbk gb2312 big5)都可以
    2.让请求和响应统一编码为:
      request.setCharacterEncoding("UTF-8");
      response.setCharacterEncoding("UTF-8");
      让jsp和servlet都统一
    3.String str=new String(request.getParameter("tmp").getBytes("ISO8859-1"),"UTF-8")
    4.定义过滤器。写一个类继承Filter接口,重写init方法
      在这个方法定义
      request.setCharacterEncoding("UTF-8");、
      china.doFilt(request,response);
      response.setCharacterEncoding("UTF-8");
    5.终极解决方案:在tomcat的server.xml加入属性:URIEncoding="UTF-8"
      

  3.   

    照您的方法,问题解决了。敢问大侠,是什么原因造成的呢?
    前后台编码不一致
    那为什么通过login.action访问的时候却没有出现乱码呢?