在安装完Sybase后,很多人在使用isql或程序插入中文数据后发现,查询出数据为乱码(中文字符全为‘?’),这是因为客户端的字符集和服务端的字符集不一致造成的,sybase默认安装后默认字符集为:iso_1。通常使用中文字符集在Sybase内为cp936。那么如何设置sybase的字符集呢?修改方法如下:
以Windows操作系统Sybase15为例:
首先说明察看服务端字符集和客户端字符集的方法:
查看服务器端字符集:
在isql环境中执行:
1>; sp_helpsort
2>; go
查看客户端字符集:
在isql环境中执行:
1>; select @@client_csname
2>; go
修改服务端字符集方法:
假设sybase安装目录为$sybase$
◆1.转到$sybase$\ASE-15_0\bin目录
执行命令:charset -Usa -P binary.srt cp936
◆2.打开isql,执行下面的SQL查询出cp936对应的id
select id , name from syscharsets where name = 'cp936'
go
假设查询结果为171
执行下面语句设定默认字符集
sp_configure 'default char',171 --可能有误,以上面的查询结果为准
go
关闭ASE
shutdown
go
◆3.重新启动sybase服务两次(第一次启动会失败),启动服务。
sybase修改客户端字符集:
解决方法:
一、修改客户端的locales.dat 文件,找到 [NT] 处,将“locale=default,us_english,iso_1”的“iso_1” 修改为“cp936”。
二、修改dbartisan左边第一个菜单的XX子菜单(具体名称,忘记了)connection处的ISO_1,该为cp936。