在安装完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服务两次(第一次启动会失败),启动服务。