汉字乱码问题
笔者曾经在使用ADO向SQL Server 6.5中追加或修改数据后,发现查询出来的汉字都是乱码,最初以为是客户端的环境有问题,后来打开服务器端的数据库,发现其中的汉字也都是乱码,费了九牛 二虎之力才找到原因:在追加和修改的过程中,ADO将字符进行了自动翻译(AutoTranslate),翻译后就成了乱码(Microsoft给我们开 了一个“小小”的玩笑),解决的办法就是不让它乱翻译,具体操作如下:
如果ADO通过OLE DB直接连接到数据库,则在Connection的ConnectionString中加入字符串:AutoTranslate=False;
如果ADO通过ODBC连接到数据库,则在配置ODBC时,将“执行字符数据转换”一项的勾去掉。
可是我通过查询显示的还是乱码?为何?
待考虑的方法:
select cast( 列名 as binary ) as 列名 from 表名 where 查询条件
这样你看看某个具体的返回结果是什么,这是存在数据库中的二进制格式;之后你可以对照下各字符编码表,看看是什么编码,然后就自己转换成汉字。
转换方法 windows下搜索 WideCharToMultiByte 函数 和 MultiByteToWideChar函数的用法