tomcat4下显示中文必须要加上<%@ page contentType="text/html;charset=gb2312"%>;表单提交中文要正常显示需要new String(request.getParameter("变量").getBytes("iso8859-1"),"gb2312")转化;数据库里的查询出的中文不需转化也可以正常显示tomcat5不加也能正常显示,加上也能正常显示。不加的话,表单提交时,不必转化可以正常显示中文,数据库里的中文也可正常显示;加上的话,表单提交时需要转化,同时,数据库里的也需要转化才能正常显示
所以你的问题是数据库的中文需要转化一下,同样也是用new String(request.getParameter("rs.getString("变量")").getBytes("iso8859-1"),"gb2312")转化

解决方案 »

  1.   

    这是struts工程,所有的form对应的中文部分的设置方法,都进行字符集转换,从iso8859-1转换成gbk的格式,并且每个jsp页面头部都加上<%@ page language="java" contentType="text/html;charset=GBK" %>
    我想程序应该是没有问题,因为同样的程序,同事那用tomcat5.0.27是可以显示中文的。
    另外,我把原来的jsdk1.4.2_04换成jsdk1.4.2,eclipse的话原来是lomboz插件,现在又装了一个tomcat插件,已经和别人的一摸一样了,为什么还是错的啊??
    郁闷
      

  2.   

    to steveyue:
    -----------------------
    我的form里有
    public void setText(String text) {
      this.text = common.getDeString(text);
    }的代码,并且common.java里也定义了
    public static String getDeString(String sourceString){
       try{
          String coding_string = new String(sourceString.getBytes("iso8859-1"),"GBK");
          return coding_string;
       }catch(Exception e){
       }
       return null;
    }
    你说的"不加的话,表单提交时,不必转化可以正常显示中文,数据库里的中文也可正常显示;加上的话,表单提交时需要转化,同时,数据库里的也需要转化才能正常显示"是什么意思阿??"
      

  3.   

    tomcat5下:
    1、在文件前不加<%@ page contentType="text/html;charset=gb2312"%>,提交表单和查询数据库时以及正常的中文显示都不用做转换处理;
    2、加上<%@ page contentType="text/html;charset=gb2312"%>,正常的中文显示没问题,但提交表单和查询数据库的中文就需要做转换处理了。
      

  4.   

    你的页面中有没有include?
    在Tomcat5中不管是jsp:include还是<%@ include ... %>包含的页面都必须加上
    <%@ page contentType="text/html;charset=GB2312" %>
    其中被包含页面的contentType和包含页面的contentType应该要相同