烦人的中文乱码

本文介绍了使用ADO向SQL Server写入数据时遇到的汉字乱码问题及其解决方案。通过禁用ADO的自动翻译功能,可以避免乱码的产生。文章还提供了一种检查数据库中乱码的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

汉字乱码问题

  笔者曾经在使用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函数的用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值