最常用的方法是 String s1 = request.getParameter(“keyword”); String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”); getBytes 方法用于将中文字符以“ISO-8859-1”编码方式转化成字节数组,而“GBK” 是目标编码方式。我们从以ISO-8859-1方式编码的数据库中读出中文字符串 s1 ,经过上述转换过程,在支持 GBK 字符集的操作系统和应用软件中就能够正确显示中文字符串 s2 。

解决方案 »

  1.   

    数据库连接字符串加上“?charset=eucgb”
    例如:
    jdbc:sybase:Tds:127.0.0.1:4100/pubs?charset=eucgb可参见:
    http://expert.csdn.net/Expert/TopicView1.asp?id=1952652
      

  2.   

    换新的JDBC Driver试试,最新的Sybase JDBC是5.5的。
      

  3.   

    用这个方法,用2试一下.
    即:
      getgbstr(str,2);   public static String getgbstr(String str,int direct){
            
            try{
                 String _gbStr;
                 switch(direct){
                 case 1:
                     _gbStr = new String(str.getBytes("ISO8859_1"),"GB2312");
                      return _gbStr;
                 case 2:
                      _gbStr = new String(str.getBytes("GB2312"),"ISO8859_1");
                      return _gbStr;
                 default:
                      return str;
                 }       } 
           catch(Exception e){
                  return str;
              }
            }
      

  4.   

    楼上的,你这种方法不行!
    在下小试了一把:
    先在weblogic设置编码为GBK
    然后连数据库时只设置jconnect_version=2
    然后再把数据库读出的中文转化为ISO-8859-1
    一切ok
      

  5.   

    对!上面方法是11。5版本的jdbc的唯一有效方法,注意jconnect版本4。5,sybase字符集cp850