SQLserver插入\更新中文乱码

33 篇文章 1 订阅

系统对接新接口时,要增加上游接口类型(那么就需要手动进行插入SQL)

发生了插入SQL的时候出现乱码问题,经过测试只有中文乱码,其他插入数据正常

经过百度,百度众说纷纭,有的甚至更改全表的编码……这哪行?

最后发现问题在于: 细节! 没错 是细节!!!

-- 我的插入语句
INSERT INTO [zy_operator_type]([name], [operators], [id], [code], [batch_query_count]) VALUES ('测试联通', 2, 57, NULL);

-- 正确的插入语句
INSERT INTO [zy_operator_type]([name], [operators], [id], [code], [batch_query_count]) VALUES (N'测试联通', 2, 57, NULL);

语句太长了,简略一点

-- 我的插入语句
INSERT INTO [zy_operator_type]([name]) VALUES ('测试联通');

-- 正确的插入语句
INSERT INTO [zy_operator_type]([name]) VALUES (N'测试联通');

没错,就是这个 N 的问题

有大N的 ',解释其内容为Unicode 字符(双字节
无大N的 ',起引号作用,其内容为字符串(单字节

英文就是单字节,所以不会乱码,中文是双字节编码,单字节解析时会乱码,因此要加 N

下面是乱码和正常时的截图

image-20211207141725831
结论: 英文就是单字节,所以不会乱码,中文是双字节编码,单字节解析时会乱码,因此要加 N
结论: 英文就是单字节,所以不会乱码,中文是双字节编码,单字节解析时会乱码,因此要加 N
结论: 英文就是单字节,所以不会乱码,中文是双字节编码,单字节解析时会乱码,因此要加 N
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值