日期:2014-05-18  浏览次数:20438 次

乱码问题
我单位有两台SQL服务器,一台是商用的数据库服务器,其排序规则是Latin1_General_BIN,一台是我单位自己编写的办公室自动化的服务器,其排序规则是:Chinese_PRC_CI_AS。
如果取两个服务器的两个表关联起来,用全连接的方式,连接条件中加入collate database_default是一点问题也没有。
但是取其中一个字段的内容则出现了乱码,就是类似这样的写法,COALESCE(OA.ITEM_DESC,FS.ITEM_DESC collate Latin1_General_BIN)。ITEM_DESC在办公室自动化的服务器中字段类型是nvarchar,商用服务器的字段类型是无法更改的,这样取值的结果是,一个服务器取得值为中文,另一个服务器取得值必定是乱码。怎么改排序规则都不行,必有一个服务器的数值是乱码,我该怎么办呢?先谢谢诸位。

------解决方案--------------------
比较笨的方法:转换成ascii,
------解决方案--------------------
你可以直接
select FS.ITEM_DESC COLLATE Chinese_PRC_CI_AS
select OA.ITEM_DESC COLLATE SQL_Latin1_General_BIN
看看是不是乱码
------解决方案--------------------
直接改数据库的排序规则不行么?
要么就在页面端进行Unicode转换处理.