免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2856 | 回复: 4
打印 上一主题 下一主题

[C] c 中文插入mysql 问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-17 13:30 |只看该作者 |倒序浏览
10可用积分
如题,当我用程序插入中文时,数据库相应字段显示为空。
表采用utf8编码存储,并且插入时
mysql_query(&mysql,"set names utf8");
但是中文就是插入有问题。
int insert_message(char *id,char *name,char *date,char *email,char *msg_body)
{
        MYSQL mysql;
        MYSQL_RES *res;
        MYSQL_ROW row;
        int result=0;
        char *query=(char *)malloc(2000*sizeof(char));
        int is_wrong;
        mysql_init(&mysql);
        if(!(mysql_real_connect(&mysql,"localhost","root","123","message",0,NULL,0))){
                printf("%s",mysql_error(&mysql));
                //result=1;
        }
        mysql_query(&mysql,"set names utf8");
        sprintf(query,"insert into message(id,name,date,email,msg_body) values('%s','%s','%s','%s','%s')",id,name,date,email,msg_body);
        is_wrong=mysql_real_query(&mysql,query,strlen(query));
        if(is_wrong){
                printf("%s",mysql_error(&mysql));
                //result=1;
        }
        printf("%s",query);//这个print出来,sql语句是正确的,但是如果有中文,插入的就是空值
        free(query);
        mysql_close(&mysql);
        return result;
}

小弟菜鸟,还请大侠们指点。

最佳答案

查看完整内容

那set names gbk 阿

论坛徽章:
0
2 [报告]
发表于 2009-05-17 13:30 |只看该作者
那set names gbk 阿

论坛徽章:
0
3 [报告]
发表于 2009-05-17 14:06 |只看该作者
或许你的中文不是utf8?转换一下?

论坛徽章:
0
4 [报告]
发表于 2009-05-17 14:09 |只看该作者
额。。。
我在写cgi程序
我前端选的字符编码是gbk呀。

论坛徽章:
0
5 [报告]
发表于 2009-05-17 14:59 |只看该作者

回复 #4 r2r4 的帖子

呵呵,似乎是这样。
以前写java或php的时候,以为把编码都搞清楚了,原来没清楚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP