・写入数据库就变成了?,真奇怪!

iou3344 2016-02-27 07:53:19
insert into [mysearch](name,name_numb)values('红・绿・蓝',1)

这个语句插入数据库后,为什么变成了红?绿?蓝

这个值是从另外一个页面通过jquery的ajax方法传递过来的(serialize),success: function (data) { alert('成功:'+data)},返回的这一条语句中也显示的是红・绿・蓝

F12后执行ajax,看到服务器端的返回值(Preview和Response)也显示的是红・绿・蓝

但是最终的执行结果就是:一写入数据库就变成了红?绿?蓝

为什么呢?想不通啊!!!!

数据库是SQL2008R2。

@无聊码农
...全文
233 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2016-02-29
  • 打赏
  • 举报
回复
引用 3 楼 iou3344 的回复:
具体会在那个字段出现并不确定啊!我要每个字段都加这个吗? 可以几个判断吗?发现哪个字段有特殊字符然后再加?
首先,在存储的时候,最好用nvarchar类型,这个n是只unicode类型,这样保证了存入的数据时正确的。 然后,就是在insert 、update等数据时,在数据前面加上N,这个不加应该也没关系,前提是 你的数据类型是nvarchar的
顾西昂 2016-02-28
  • 打赏
  • 举报
回复
引用 3 楼 iou3344 的回复:
具体会在那个字段出现并不确定啊!我要每个字段都加这个吗? 可以几个判断吗?发现哪个字段有特殊字符然后再加?
在引号前加个N试试
tcmakebest 2016-02-27
  • 打赏
  • 举报
回复
对于文本型字段,统一用 nvarchar 吧,兼容各种语言
中国风 2016-02-27
  • 打赏
  • 举报
回复
数据用unicode字符nvarchar/char 写入时参数nvarchar/nchar,指定时需要加N'内容'如#1
iou3344 2016-02-27
  • 打赏
  • 举报
回复
具体会在那个字段出现并不确定啊!我要每个字段都加这个吗? 可以几个判断吗?发现哪个字段有特殊字符然后再加?
薛定谔的DBA 2016-02-27
  • 打赏
  • 举报
回复
楼主看看下面的栗子就知道了,特殊字符使用unicode存储。
create table #test(col nvarchar(10),coll varchar(10))  
  
insert into #test(col,coll)  
select 'AA▪BB','Q★Q'  
union all  
select N'AA▪BB',N'Q★Q'  --字符前面带N
  
select * from #test

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧