Tomcat中Java/jsp中文问题完全解决方案
板桥里人 https://www.jdon.com
Tomcat 3.23以下的版本
        对于Tomcat 3.23以下版本,Java中的中文问题网上已经谈了不少,一般遇到中文问题使用转换函数转换.toChinese()
        public static String toChinese(String strvalue)
           {
                 try{
                     
        if(strvalue==null)
                        
        return null;
                     
        else
                     
        {
                        
        strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
                        
        return strvalue;
                 }
                 }catch(Exception e){
                       
        return null;
                 }
           }
凡是涉及中文字符串,如从数据库中读取中文字符串,或变量名赋值时,使用toChinese函数:
        toChinese("这是中文字符串")
        
        注:该办法在使用javamail发送中文信息时似乎有问题
Tomcat 4.0以上的版本
        在4.0以后的版本,已经不需要象3.23版本中使用字符转换函数:
(1)编译javabean时 javac 命令行加上-encoding ISO8859_1
(2)在Jsp头部中加入<%@ page contentType="text/html;charset=ISO8859_1" %>
是不是很简单? 使用本办法基本可以对付实际应用,推荐!
但也有一个缺点是,通过form表单get参数;或在url后附带中文,这个办法就失效,我相信应该有办法解决.
该办法原理就是在java的各个环节统一编码为:ISO8859_1.
修改tomcat
        该办法是一位网友在论坛贴出的,我没有试验,转载于此:
只要修改一个地方就行了,文件为: 
        tomcat4/src/catalina/src/share/org/apache/catalina/connector/HttpReque 
        
        stBase.java 
        找到protected void parseParameters()方法,把 
        if (encoding == null) 
        encoding = "ISO-8859-1"; 
        改为 
        if (encoding == null) 
        encoding = "GBK"; 
        编译: 
        解开jakarta-servletapi-4的原码包,找到servlet.jar文件设置到CLASSPATH 
        找到tomcat4.0.1的bin包将catalina.jar设置到CLASSPATH. 
        因为编译时要使用这些api. 
        然后javac HttpRequestBase.java生成两个class文件. 
        解开catalina.jar jar xvf catalina.jar(tomcat bin包中的) 
        覆盖调原来的两个class文件: 
        jar cvf catalina.jar org 
        即可 
        重启tomcat4,一切OK!,你再也不用编写烦人的编码转换了。 
注:该方法只适合Tomcat 4版本,根本java解决之道是统一编码为UTF-8
相关文章: