创建表时,在中文字段后面带上
COLLATE Chinese_PRC_CI_AS
就不会出现乱码了

解决方案 »

  1.   

    就是在数据库里面生成.sql脚本文件,然后按李洪根老师的方法进行数据库部署.下面是生成的一段.sql脚本,打包完后,在服务器上安装,INSERT INTO进入数据库的中文字就变成乱码了...
        CREATE TABLE [dbo].[UDS_Role] (
    [Role_ID] [int] IDENTITY (1, 1) NOT NULL ,
    [Role_Name] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [Role_Description] [ntext] COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
     SET IDENTITY_INSERT [UDS_Role] ON INSERT INTO [UDS_Role] ( [Role_ID] , [Role_Name] , [Role_Description] ) VALUES ( 54 , '財務主管' , '財務主管' )
     INSERT INTO [UDS_Role] ( [Role_ID] , [Role_Name] , [Role_Description] ) VALUES ( 55 , '財務員工' , '財務員工' )
     INSERT INTO [UDS_Role] ( [Role_ID] , [Role_Name] , [Role_Description] ) VALUES ( 56 , 'ADM' , '系統管理員' ) SET IDENTITY_INSERT [UDS_Role] OFF
    GO
      

  2.   

    检查服务器master库中syslanguages表是否包含繁体中文
      

  3.   

    恩..包含..我刚在服务器上面另一个数据库(这个数据库没有显示乱码)进行了对比..在字符型字段的排序规则为:<database default> 显示乱码的排序规则为:Chinese_PRC_CI_AS
      

  4.   

    去掉中文排序
    用系统默认的排序规则
    然后用nchar或者nvarchar试试看
      

  5.   

    可以用SQLServer的全球化解决方式,你的insert语句中文字段前面全部加上N就可以了
    INSERT INTO [UDS_Role] ( [Role_ID] , [Role_Name] , [Role_Description] ) VALUES ( 54 , N'財務主管' , N'財務主管' )
     INSERT INTO [UDS_Role] ( [Role_ID] , [Role_Name] , [Role_Description] ) VALUES ( 55 , N'財務員工' , N'財務員工' )
     INSERT INTO [UDS_Role] ( [Role_ID] , [Role_Name] , [Role_Description] ) VALUES ( 56 , N'ADM' , N'系統管理員' )
    像上面这样加上以后数据库就不会出现中文乱码了