<%@ page contentType="text/html; charset=gb2312"%> 彻底解决Tomcat 5.0.19的中文乱码问题
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
彻底解决Tomcat 5.0.19的中文乱码问题
     发布者: 发布时间:2006-07-10

一、Include的页面乱码


现象:include进来的页面出现乱码,其它页面正常。
原因:Tomcat在缺省情况下使用ISO-8859-1编码,但是在include时有时Tomcat不能正确根据外层.jsp文件的编码解析include进来的文件,造成include进来的文件中的中文乱码。
解决:这儿可以有很多解决办法,但是对于我们的中文环境,从根本上的解决办法是将Tomcat 5.0.19的核心缺省编码从ISO-8859-1修改为GBK 。可以在下面地址下载修改过的jar文件,
    research.org/dn/tomcat-5.0.19-jar-zh.rar' target='_blank' class='l2'>右击保存
jasper-compiler.jar,jasper-runtime.jar位于/common/lib下,其它位于/server/lib下,将新的.jar文件替代原.jar即可。

二、提交的数据乱码


现象:通过表单提交的数据出现乱码。
原因:原因未明。可能是Tomcat在接收到请求后,并没有能够根据request中的信息提前正确的编码方式。
解决:可以添加一个设置字符集的Filter。

  1. package filters;
  2. import java.io.IOException;
  3. import javax.servlet.Filter;
  4. import javax.servlet.FilterChain;
  5. import javax.servlet.FilterConfig;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.ServletRequest;
  8. import javax.servlet.ServletResponse;
  9. import javax.servlet.UnavailableException;
  10. public class SetCharacterEncodingFilter implements Filter {
  11.     protected String encoding = null;
  12.     protected FilterConfig filterConfig = null;
  13.     protected boolean ignore = true;
  14.     public void destroy() {
  15.         this.encoding = null;
  16.         this.filterConfig = null;
  17.     }
  18.     public void doFilter(ServletRequest request, ServletResponse response,
  19.                          FilterChain chain)
  20.     throws IOExceptionServletException {
  21.         // Conditionally select and set the character encoding to be used
  22.         if (ignore || (request.getCharacterEncoding() == null)) {
  23.             String encoding = selectEncoding(request);
  24.             if (encoding != null)
  25.                 request.setCharacterEncoding(encoding);
  26.         }
  27.     // Pass control on to the next filter
  28.         chain.doFilter(request, response);
  29.     }
  30.     public void init(FilterConfig filterConfig) throws ServletException {
  31.     this.filterConfig = filterConfig;
  32.         this.encoding = filterConfig.getInitParameter("encoding");
  33.         String value = filterConfig.getInitParameter("ignore");
  34.         if (value == null)
  35.             this.ignore = true;
  36.         else if (value.equalsIgnoreCase("true"))
  37.             this.ignore = true;
  38.         else if (value.equalsIgnoreCase("yes"))
  39.             this.ignore = true;
  40.         else
  41.             this.ignore = false;
  42.     }
  43.     protected String selectEncoding(ServletRequest request) {
  44.         return (this.encoding);
  45.     }
  46. }


配置web.xml

[pre]    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>GBK</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>[/pre]
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
Tomcat5+Mssql server 2000数据库连接池配置之旅
配置Tomcat 4.1.29的连接池
Tomcat 4.x的配置与管理
根本解决Tomcat里面的中文问题
WebLogic 6.1使用技巧
weblogic的jsp问题解决方法
 
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号