sql server 插入数据编码问题 解答

解决在英文版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 搞了我一天 借鉴各位大佬 惭愧,希望对大家有用!!!!!!!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值