OPENCLINT编程中字符集问题
使用OPEN CLIENT编程时,服务器使用了WINNT ,字符集使用UTF8,但用OPENCLIENT编写的程序读出中文时全是乱码。
查看服务器字符集的命令有
在SYBASE 的master数据库中查询系统字符集
select * from syscharsets
查看Sybase 服务器缺少字符集设置
sp_configure 'default character set id'
我的客户端使用的是Linux.
先查看一下服务器的字符,
使用/sybase-12.5/OCS-12_5/bin下的 isql_r程序,
在isql_r 命令后面加上 -J iso_1 或者-J cp936看看到底哪种编码查询出来的数据能正确显示
经过试验发现-J cp936能正确显示。
然后修改sybase-12.5/locales/localse.dat 文件把default 改为cp936,重新运行程序,还是乱码。
使用echo $LANG 原来系统设置为中文了
使用export LANG= 把LANG去掉,重新运行程序,这次显示OK了