mysql中文坑爹的东西

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;
                }

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

时间: 2024-11-06 03:45:16

mysql中文坑爹的东西的相关文章

解决springmvc+mybatis+mysql中文乱码问题【转】

这篇文章主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下 近日使用ajax请求springmvc后台查询mysql数据库,页面显示中文出现乱码 最初在mybatis配置如下 <select id="queryContentById" resultType = "java.lang.String" parameterType="String" >     select t

通过g++查询到的mysql中文数据输出是乱码

这几天遇到一个问题: 通过g++查询到的mysql中文数据输出是乱码,而通过g++添加到mysql中的中文数据也是乱码,但单独通过g++输出正常,查询通过mysql添加的中文数据显示也正常. 在网查查询了很久,纠结了半天也没有找到答案.后来通过在linux吧发帖终于找到了解决方案.原来是mysql和g++默认字符集不匹配产生的问题.通过在代码中添加 int mysql_set_character_set(MYSQL *mysql, char *csname)函数终于解决了问题. 源码如下: #i

MySql中文乱码问题(3)

MySql的客户端是在dos界面上,然而dos界面默认的字符集编码方式是:GBK (1).MySql字符转换原理图 (2).查看服务器的所有编码方式: >show variables like 'character%'; (3).通过以上观看,如果不想出现中文乱码情况,需要指定客户端的编码方式.连接器的编码方式.返回数据的编码方式: #设置客户端为GBK: >set character_set_client=gbk; #设置连接器使用UTF8 >set character_set_con

MySQL 中文insert报错Incorrect string value: &#39;\xCC\xEC\xB2\xC5&#39;

    序言:中文录入失败,报错:Incorrect string value: '\xCC\xEC\xB2\xC5',如下所示:mysql> set names utf8;Query OK, 0 rows affected (0.00 sec) mysql> insert into t select 2 as a ,'天才' as b;ERROR 1366 (HY000): Incorrect string value: '\xCC\xEC\xB2\xC5' for column 'b' a

总结--解决 mysql 中文乱码

首先分析一下导致mysql 中文乱码的原因: 1.建表时使用了latin 编码 2.连接数据库的编码没有指定 3.写入时就已经乱码(这种情况需要自己检查源数据了) 解决方法总结: 1.创建库时指定编码: create database testdb default charset utf8 2.修改库的编码: ALTER DATABASE `testtable` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 3.修改表的编码: ALTER TABLE `

c#写入Mysql中文显示乱码 解决方法 z

mysql字符集utf8,c#写入中文后,全部显示成?,一个汉字对应一个? 解决方法:在数据库连接字符串中增加字符集的说明,Charset=utf8,如 MySQLConnection con = new MySQLConnection("server=127.0.0.1;uid=root;pwd=;database=test;Charset=utf8"); 搞定 c#写入Mysql中文显示乱码 解决方法 z,布布扣,bubuko.com

MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档[原创]

[文章+程序 作者:张宴 本文版本:v1.0 最后修改:2008.07.01 转载请注明原文链接:http://blog.zyan.cc/post/356/] MySQL在高并发连接.数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%和_开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很大.MySQL针对这一问题提供了一种全文索引解决方案,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜

SAE用flask+MySQL中文&#39;utf8&#39; codec can&#39;t decode byte 0xb7解决方法

在Sina App Engine(SAE)上用python flask框架+MySQL搭app服务器时,select返回中文时jsonify函数报如下错误:(为调试放拜我异常时return的traceback.format_exc()) Traceback (most recent call last): File "/data1/www/htdocs/245/jcguo/1/myapp.py", line 88, in searchHotel return jsonify(resul

Mysql中文乱码问题完美解决方案

MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如php)的连线语系设定问题强烈建议使用utf8!!!!utf8可以兼容世界上所有字符!!!!一.避免创建数据库及表出现中文乱码和查看编码方法1.创建数据库的时候:CREATE DATABASE `test`CHARACTER SET 'utf8'COLLATE 'utf8_general_ci';2.建表