用Sybase的Ado.NET驱动进行数据库连接的时候,有时候会出现中文乱码的情况。而OLEDB的驱动就一点问题都没有。可见Ado.NET的驱动还需要进一步完善啊..
Sybase的默认的安装字符集选了ISO_1,结果装好数据库以后,发现在SQL Advantage里面执行SELECT语句,查询的结果里面中文内容正常!用c#写的代码读出的中文内容,乱码。
通过查资料,得到的解决办法就是:安装CP936字符集!
处理步骤: (假设安装目录是c:\sybase)
1:cmd命令行状态下:
1. c:\>cd \sybase\charsets\cp936
2. c:\sybase\charsets\cp936> charset -Usa -P -S binary.srt cp936
2:在SQL Advantage中
1>select id from syscharsets where name='cp936'
2>go
把选择出来的id(我得出来的是171,网上好多人得到的也是171,如果你的不是171,就用你选择出来的值)然后:
1>sp_configure "default character set id",171
3:重启Sybase服务器。需要重启两次。第一次重启后会直接停止,需要启动第二次。
或者:重新启动机器。
经过这些设定以后,乱码问题就解决了。