搜索
首页 电脑/网络 程序设计 数据库

关于中文乱码的问题

  我有一个Sybase数据库,如果使用一个已经编译好的EXE文件来执行,里面的中文显示没有任何问题,但是如果我直接打开数据库,就发现里面的中文全是乱码~~ 据我迄今网上找到的数据,发现是因为Sybase在处理字符的时候是按1个字节来处理的,而中文汉字都占用2个字节,也就是说,Sybase硬是把一个汉字拆成了2个字,也就成了乱码,不知道能不能使用什么程序(已有的,或者告诉我方法,我用VS2005编一个)来解决这个问题。
   下面举个例子: 下面的那行乱码应该是1997年7月 - 2003年7月 1999Äê7ÔÂ - 2003Äê7ÔÂ 大家帮我看看这个怎么解决,谢谢了!。

全部回答

2006-12-03

0 0
    这个问题,说明你的EXE程序中的字符集设置(连接数据库的代码中肯定有设置)与服务器端的字符集是一致的,或者是在同一语言组中。而直接打开数据库是中文乱码,说明客户端和服务端的字符集不一致。
   而且SYBASE数据库从12。5起支持中文字符的字符集有四种:CP936,EUCGB,UTF-8和GB18030。  象CP936之类,很早的版本就支持的。当然象iso_1之类的字符集是把汉字分字节处理的。
   所以乱码的原因在于客户端和服务端字符集的不一致,和SYBASE处理汉字的方法没什么关系。 所以,你需要查看两端的字符集究竟是什么,可以使用系统存储过程和全局变量。   查看服务器端字符集,在isql环境中执行: 1> sp_helpsort 2> go 查看客户端字符集,在isql环境中执行: 1> select @@client_csname 2> go 如果要保证两端的字符集一致,就需要进行字符集的转换操作了。
    但是一般不建议修改服务端的字符集,因为已经有大量的数据存在了,会很麻烦。所以修改客户端的字符集与服务端一致就OK了。 。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
数据库
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
数据库
VB
C/C++
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
数据库
数据库
举报
举报原因(必选):
取消确定举报