首页 > 数据库技术 > 详细

mysql中文坑爹的东西

时间:2015-09-16 14:05:44      阅读:228      评论:0      收藏:0      [点我收藏+]

1.首先pb需要utf8格式,所以由ansi转换成utf8格式才能传输

2.在接收端,需要将utf8转换成ansi才能用

3.在插入数据库之前需要将sql从ansi转换成utf8格式

4.数据库设置字符集为utf8 ASSERT( 0 == Query(&m_con, "SET NAMES utf8", strlen("SET NAMES utf8")));

 

db_user_mail* pMail = offline->mutable_user_mail();
                ASSERT(pMail->has_content());//系统邮件肯定需要content

                char* pContent = UTF8ToANSI(pMail->content().c_str());

                char sql[1024 * 10] = {0};
                sprintf_s(sql, sizeof(sql), "INSERT INTO `user_sys_mail` SET  `content` = ‘%s‘, `type` = %d, `send_time` = from_unixtime(%u), `valid_time` = %u;SELECT  LAST_INSERT_ID();",
                    pContent,  pMail->type(), pMail->send_time(), offline->valid_time());
                
                free(pContent);

                char* pSql = ANSIToUTF8(sql);
                int code = CDBMgr::Query(con, pSql, strlen(pSql));
                free(pSql);
                if (0 != code)   //非0查询失败  
                {
                    printf("query failed! [%s] [%d] [%s] \n", sql, mysql_errno(con), mysql_error(con));
                    return -1;
                }

插入中文的格式,当时这个问题给我带来了巨大的困扰,吗的都是坑。。

mysql中文坑爹的东西

原文:http://www.cnblogs.com/zzyoucan/p/4813077.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!