通过jdbc访问sybase11.9时,中文检索为乱码,在网上看到有一个人写的Sybase JDBC驱动的改进,不知这个方法是否可行?有人试过吗?试过的话,给提供一个打包好的驱动吧。
用了有人写的在URL中加上?charset=cp850&jconnect_version=0,一点用处也没有,求解。

解决方案 »

  1.   

    你先去看看db中的charset是什么.然后不管是什么,在unl中加入同样的设置.无论如何,拿到java 内存中的一定要unicode.
      

  2.   

    读出来用
    new String(str.getBytes("ISO8859-1"));
    转一下
      

  3.   

    哦,各位忘了说了,我用的sybase的字符集是cp850,上面各位的办法基本上都试了,就是不行,不知为何?还有一点比较奇怪的是,因为本人是将别人的数据库中导的数据,都是sybase11.9,但是不知为何?使用rs.getAsciiStream(i)居然可以得到正确的显示(用rs.getString(j)当然是得不到的),但如果是手工从isql中录入的一条就不可以正确显示了。
      

  4.   

    如果db用的是cp850,假设你存的是中文,那么本身很可能data已经错了。可以把db的codeset设成gbk或者utf8 or utf16(也就是unicode),然后在用url的设置。就不应该乱了。
      

  5.   

    String str = rs.getString("name");
    String strCoded = new String(str.getBytes("iso-8859-1"),"GBK");
    System.out.println(strCode);我也是用sybase,遇到获取的是中文字段一直都是这样转换,没问题。
    如果是中文入库,调转过来就行了