补充一下,如果在JSP页中汉字显示正常

解决方案 »

  1.   

    请帮忙给出具体在HTML页中添加的语句
    不用写过滤类或者SERVLET的
      

  2.   

    1.<%@ page contentType="text/html;charset=gb2312"%>
      <html>
      <head>
    2.   <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
      </head>
      <body>
    你把上面2个地方加上去看看
      

  3.   

    国际化的东西带来的问题还真的好多,各国语言不同,所使用的字符集都不一样,JAVA,Mysql,Tomcat,浏览器等等用的字符集也不一样,这几天气得我都说了好几次不用什么Struts,Mysql,Tomcat了,全部都是自己写出来好了,用统一的编码统一的字符集,可惜能力不够,说说而已,问题还是得解决。在网上查了好久,自己也实践了好多天,问题终于算是解决了。 
    强烈建议使用struts时所有编码均采用UTF-8(unicode)编码
    因为要考虑到很多国的语言,一开始就把项目立足于国际化,遇到的乱码有 
    1、资源文件里读出来在页面上的乱码; 
    2、数据库读出来的乱码 
    3、数据库写进去的乱码 
    4、在ActionForm验证不通过Errors返回的乱码,也就是request,IE参数传递的乱码了。 
    下面是我的解决方法 
    1、资源文件里读出来在页面上的乱码:这个最容易解决了,把写好的ApplicationResources.properties文件,在DOC底下用 native2ascii -encoding gb2312 ApplicationResources.properties 
    ApplicationResources_zh_CN.properties 命令来个字符编码转换,将原来的中文转为Unicode编码就搞定了中文简体,繁体也用同样的命令,只是把 bg2312 改为 bgk 就可以了。 
    2、数据库读写的乱码,刚开始的时候因为受以前的SQL Server+JDBC 影响(在那时写入数据库是可以不用做什么工作的,只是在读出来的时候来个 gbk = new String(iso.getBytes("ISO-8859-1"), "GBK") 转换就行了)我也都在把读写都在转换,搞得好复杂也很麻烦,后来在连接池连接代码jdbc:mysql://localhost:3306/database?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8那里加上一个&useUnicode=true&characterEncoding=UTF-8,保证了在数据库操作时候使用了统一的编码字符集,又解决了两个乱码问题,一举两得,嘿嘿。 
    4、request,response的乱码在网上找了好久,也有两个解决的办法,也是来个转换,还有种办法是写一个过滤器,我选择了后者,因为简单:),这方法用到两个文件,一个是 filter ,一个是 web.xml 文件,代码在后面。 
    5、至于JS的这个问题,还没办法,只好在JSP页面上改为<%@ page contentType=“text/html; charset=UTF-8“%>了,反正这样也没问题。 
    到此为止,乱码问题总算告一段落了,感觉蛮不错的,郁闷了这么久,终于可以高兴了好大一段子了。 package Filter;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.*;
    public class MyFilter extends ActionServlet
    {
    protected void process(HttpServletRequest request, HttpServletResponse response) 
    throws java.io.IOException, javax.servlet.ServletException 
    {    /**@todo Override this 
         org.apache.struts.action.ActionServlet
          method*/   
     request.setCharacterEncoding("UTF-8");    
     super.process(request, response);  }
    }
      

  4.   

    赞同meilvin() ( ) 信誉:100    Blog 的说法!!!!
      

  5.   

    public class MyFilter extends Filter 可以了
      

  6.   

    楼上的牛哥们看清楚了,我说的是HTML页显示乱码,今天灵机一动,把所有HTML页全改下成为JSP页,也``汉字正常了.很无奈,一个治标不治本的方法~~
      而且我觉得问题的所在是JBOSS,TOMCAT等应用服务器的设置问题,在JBOSS里需要改个地方,但是一直没找到该怎么改.我用的JBOSS,希望哪位大人帮忙彻底解决下小弟这个问题,多谢``