日期:2014-05-19  浏览次数:20459 次

急啊,麻烦哪位高手帮忙解决!!!(乱码问题)
Select   *   from   openquery(TEST,   'SELECT   category,   description   FROM   mtl_categories_v   WHERE   structure_name   = ' 'China   Custom   Code ' ' ')
我在服务器里建立一个link,然后通过查询分析器用该语句查询数据,得到的中文数据是乱码(英文没问题),   由于服务器有其他用户连接,我不敢乱动,所以我在自己电脑上装了一个数据库,结果发现,查询的结果正常,没有出现乱码,后来我试着改了自己电脑上的语言设置使之和服务器一样,结果还是正常,我在想是不是数据库的版本问题,还是数据库collation的问题,该怎么改变,因为我不可能去把服务器上的数据库重装,很多用户在用.

我又做了以下的尝试:
create   table   #tempTable(category   varchar(30),   Description   nvarchar(150)   COLLATE   Chinese_PRC_Stroke_CI_AS   NULL)
Chinese_PRC_Stroke_CI_AS   Select   *   from   openquery(TEST123,   'SELECT   category,   description   FROM   mtl_categories_v   WHERE   structure_name   = ' 'China   Custom   Code ' ' ')
select   *   from   #temptable
Drop   Table   #tempTable
我做了一个下面的测试,讲字段descripiton的排列顺序用Chinese_PRC_Stroke_CI_AS问题还是出现,数据类型是nvarchar   我用
insert   into   #temptable(category,   Description)values( 'aaa ',   '测试 ')
是没问题的
急啊,烦哪位高手指教啊.

------解决方案--------------------
1:Nvarchar 类型
2:insert into #temptable(category, Description)values( 'aaa ', N '测试 ')

中文前加N,如:N '测试 '
------解决方案--------------------
改为varchar试一下
------解决方案--------------------
我前不久也遇到过
在查询分析器中,工具-> 选项-> 连接 "执行字符数据转换 "勾去掉,你试试看