http://technet.microsoft.com/zh-cn/library/ms190245(v=sql.90).aspx
客户端、服务端都不是unicode时 ------------------------------ 客户端-->ODBC驱动-->数据库 A编码-->Unicode-->B编码
客户端非unicode,服务端unicode时, ------------------------------ 客户端-->ODBC驱动-->数据库 A编码-->Unicode-->Unicode 前提,字符串用N开头~~否则数据库端会进行到“数据库的默认排序规则相对应的代码页”的转换
客户端、服务端都是unicode时, ------------------------------ 简单了,全程unicode~~N还得加吧~~
笔者曾经在使用ADO向SQL Server 6.5中追加或修改数据后,发现查询出来的汉字都
是乱码,最初以为是客户端的环境有问题,后来打开服务器端的数据库,发现其中的
汉字也都是乱码,费了九牛二虎之力才找到原因:在追加和修改的过程中,ADO将字符
进行了自动翻译(AutoTranslate),翻译后就成了乱码(Microsoft给我们开了一个
“小小”的玩笑),解决的办法就是不让它乱翻译,具体操作如下: 如果ADO通过OLE DB直接连接到数据库,则在Connection的ConnectionString中
加入字符串:AutoTranslate=False; 如果ADO通过ODBC连接到数据库,则在配置ODBC时,将“执行字符数据转换”一项
的勾去掉。 ----------------------------------------------- http://support.microsoft.com/kb/234748 http://support.microsoft.com/kb/904803/en-us
|