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

SQL2005里面的乱码如何解决?
1、该数据库是一个系统数据库,不能改任何东西,只能从里面读数据出来;
2、字符集是SQL_Latin1_General_CP1_CI_AS;
3、出现乱码的字段是char(25)
4、该字段内容只要是中文,select出来就是乱码,咋办?试着用COLLATE DATABASE_DEFAULT或者COLLATE Chinese_PRC_CI_AS也没用

------解决方案--------------------
SQL code

-- 试试
select convert(nvarchar(30),convert(varbinary(30), col)) from tab

------解决方案--------------------
小人物说几句。如果 lz 确实需要用 select 读取,可以在其他排序规则为 Chinese_PRC_CI_AS 数据库下操作
SQL code

-- db_en 数据库的排序规则为 SQL_Latin1_General_CP1_CI_AS
-- db_cn 数据库的排序规则为 Chinese_PRC_CI_AS 
use [db_en]
go
create table tab (c varchar(30));
insert into tab select 0xB9DCC0EDD4B1; -- “管理员”的 ascii 编码

use [db_cn]
go
select convert(varchar(30),convert(varbinary(30),c)) from [db_en]..tab 
/*管理员*/