一般来说如果没有指定页面的contType的charset为gb2312的话,使用任何含有中文的字符串都有进行一下转换。不能显示中文的问题和具体配置也有关系,比如英文版的系统需要设置locale等。还与具体的Application Server有关。Tomcat,BEA WegLogic,Sun Application Server等好像它们对中文的出来都不大相同。

解决方案 »

  1.   

    加入以下方法,在需要的地方调用
      public static String toChinese(String str)
      {
        try
        {
          if(str == null)
          {
            return null;
          }
          else
          {
            return new String(str.getBytes("iso-8859-1"));
          }
        }
        catch(Exception e)
        {
          return null;
        }
      }
      

  2.   

    找到答案了:)
    Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost/Yttrium?useUnicode=true&characterEncoding=gb2312","Yttrium","XXX");
    ----------------------------------------------------------
    参数名 取值 缺省
    user 数据库用户名 无
    password 数据库用户口令 无
    autoReconnect 当数据库连接丢失时是否自动连接,取值true/false false
    maxReconnects 如果autoReconnect为true,此参数为重试次数,缺省为3次 3
    initialTimeout 如果autoReconnect为true,此参数为重新连接前等待的秒数 2
    maxRows 设置查询时返回的行数,0表示全部 0
    useUnicode 是否使用unicode输出,true/false false
    characterEncoding 如果useUnicode,该参数制定encoding类型,建议使用8859_1 无