用Sybase Central连接ASE数据库乱码问题的解决

用sybase自带的客户端工具sybase central连接ase的时候,如果连接字符集设置不合适,查询结果中汉字会出现乱码。

如果ASE数据库的字符集为:iso_1或者cp850,执行:

sp_configure "disable character set conversi",1

go

修改此配置参数,需要重启ASE服务器。

然后,在sybase central连接配置窗口中,将Character set调整为:cp936。必须设置Character set这个参数,否则sybase central中显示的汉字肯定是乱码,这和sybase central使用的jdbc驱动有关。

其实,将Character set也可以调整为:eucgb,gb18030,这些都是支持中文的字符集。

另外,如果ASE服务器的字符集为:cp936或者utf8,可以不用修改参数disable character set conversi为:1。仅仅通过调整Character set为:cp936 也能解决汉字显示乱码的问题。

  • 本文链接地址:http://www.sybrepair.com/sybase-central-ase-character-set.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《用Sybase Central连接ASE数据库乱码问题的解决》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
    1. Eisen
      2010-12-20 09:01:31

      没法的啦。不信,老兄你在随便什么ase的db里面写一个词"钱珺",然后你就能发现随便你怎么设置这个character set,都只会是乱码啦。而实际上这个字无论在GB2312或GBK中都是存在的。
      Sybase central本身自用的字库中文字太少,又不用系统字库,这样的问题没法避免,为此我宁可用PB或直接isql,这样引用本地字库反而更好地支持查询。

      • dbainfo
        2010-12-20 09:37:43

        补充一下:博客中使用的sybase central是ASE15.0.3自带的。但是,我发现ASE15.5自带的sybase central客户端,在连接UTF8字符集的时候即使不指定连接字符集为cp936(eucgb,GBK)等也是能够正常显示汉字的。
        另外,你说的钱珺”两个字,我在utf8-nocase环境下测试是能正确显示的。
        请问, 你说的是在哪些character set 下无法显示?

    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)