解决在英文版MSSQL中插入中文乱码的问题
英文版的MSSQL(据说还有Access,但是我没用过)中直接在SQL语句中插入中文最终会显示???
但是在中文版的管理器中插入中文却没有问题。
解决的方法很简单,把类似于
insert into example values (‘您好’)
这样的SQL语句全部改写成
insert into example values (N’您好’)
N表示Unicode,上面的语法仅为示例,具体怎么写看自己习惯。
还有,如果数据库的字段类型不是nchar或者nvarchar的话貌似也是不能插中文,请大家注意。、
这些东西网上的很多方法,最好用数据库的时候就用中文版的默认排序规则为(Chinese_PRC_CI_AS)但是英文版默认编码规则为(SQL_Latin1_General_CP1_CI_AS),这样的话用英文版就会导致插入中文乱码的问题,
可以用sql查询你db的编码集:
SELECT SERVERPROPERTY (‘Collation’)
或者
SELECT COLLATIONPROPERTY(‘Chinese_PRC_Stroke_CI_AI_KS_WS’, ‘CodePage’)
查询结果:
936 简体中文GBK
950 繁体中文BIG5
437 美国/加拿大英语
932 日文
949 韩文
866 俄文
65001 unicode UFT-8
还有一种办法就修改数据库的编码集(也就是排序规则)sql:
ALTER DATABASE HGS_DC SET SINGLE_USER WITH ROLLBACK IMMEDIATE
go (这改成你db的名字就可以了)
ALTER DATABASE HGS_DC COLLATE Chinese_PRC_Stroke_CI_AI_KS_WS
go (这改成你db的名字就可以了)
ALTER DATABASE HGS_DC SET MULTI_USER
go (这改成你db的名字就可以了)
执行完毕 就ok拉 但是表字段要是nchar 或 nvarchar 才能显示中文字符 ,不然也是 ??
这个bug 搞了我一天 借鉴各位大佬 惭愧,希望对大家有用!!!!!!!!!