在sqlserver 数据库表中插入中文,查看表,中文显示乱码

sprintf(szSQL,"insert into %s (fromid,toid,time,msg,fontface,fontsize,fontcolor,fontflags) VALUES (%u,%u,%u,'%s','%s',%u,%u,%u)",TABLE_IM_MSG,ulFromID,ulToID,tCurrentTime,strMsg.c_str(),strfontface.c_str(),fontsize,fontcolor,fontflags);

然后执行execute(szSQL ),然后查看表,msg字段的值显示中文乱码,但是英文是没问题的

字符集问题 你讲数据库的字段字符集和输入输出的字符集设置成一样的 就不会有这种问题了

看下出问题的字段类型是否为nvarchar类型。

在你要插入的中问前加“N” 例如 insert table values(N'插入的值')

一、登陆“Microsoft SQL Server Management Studio”,然后选择对应的数据库的属性,打开属性标签。
二、找到编码属性“collation”,然后修改为Chinese_PRC 即可

试一下:insert into promary values(1,N'北京市') 。既:插入语句中有中文前加一个N

要显示使用Unicode 编码的数据库字段中存储的字符时,必须使用类似这样的语句:select * from table where title like N'%标题%'

就是将要查询的字符串前面的“'”,的前面加上一个大写的“N”,形如“N'”,N和‘之间必须紧挨着,中间不能有空格

各位注意啊,我的问题是,我在数据库里直接执行查询语句

insert into uvc_ims_msg (msg) values ('你好')

是不会出现乱码滴,只有当在程序里调用SQL语句,才会出现乱码

我最近也遇到这样问题,请问解决了么?