我在用VC++6.0连接Sybase12.5数据库服务器时中文出现了乱码。在用其它工具连接时,可能也会出现同样的问题。经过在网上的查找,我找到了这个问题的一种解决方式:由于客户端和服务器端字符集不一致导致的。
由于我用的是Windows系统,我仅以WindowsXP系统为例,描述一下我的解决方法:
首先到服务器的安装目录下找到 locales 目录,里面有一个 locales.dat 文件,用记事本打开,会发现里面有一些操作系统的类型,我这里要找的是[NT],在这一段内容的最后一行有:locale = default, us_english, cp850。其中的cp850即为字符集,意思是服务器端的字符集为cp850。
然后到客户端的安装目录下也找到 locales 目录,里面同样有一个 locales.dat 文件,用记事本打开,做与服务器端那个文件相同的操作。注意:locale = default, us_english, cp850这一行最后一个也要为cp850,与服务器端保持一致。将Sybase的服务重新启动,将数据库中原来的乱码数据删除,再录入新的数据时,中文乱码的问题便解决了。