问题描述
- 在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字段的值显示中文乱码,但是英文是没问题的
解决方案
一、登陆“Microsoft SQL Server Management Studio”,然后选择对应的数据库的属性,打开属性标签。
二、找到编码属性“collation”,然后修改为Chinese_PRC 即可
解决方案二:
在你要插入的中问前加“N” 例如 insert table values(N'插入的值')
解决方案三:
试一下:insert into promary values(1,N'北京市') 。既:插入语句中有中文前加一个N
解决方案四:
要显示使用Unicode 编码的数据库字段中存储的字符时,必须使用类似这样的语句:select * from table where title like N'%标题%'
就是将要查询的字符串前面的“'”,的前面加上一个大写的“N”,形如“N'”,N和‘之间必须紧挨着,中间不能有空格
解决方案五:
字符集问题 你讲数据库的字段字符集和输入输出的字符集设置成一样的 就不会有这种问题了
解决方案六:
看下出问题的字段类型是否为nvarchar类型。
解决方案七:
各位注意啊,我的问题是,我在数据库里直接执行查询语句
insert into uvc_ims_msg (msg) values ('你好')
是不会出现乱码滴,只有当在程序里调用SQL语句,才会出现乱码
解决方案八:
我最近也遇到这样问题,请问解决了么?
时间: 2024-09-28 20:47:45