c++ mysql 写库 乱码 ??_mysql c++ 乱码 解决方法

这篇博客探讨了在C++中使用MySQL数据库时遇到的编码问题。当C++客户端设置为UTF8编码时,读写操作出现乱码,而改为GB2312编码后,问题得到解决。博主分享了`mysql_set_character_set`函数在连接后设置编码的代码片段,寻求对这一现象的原因的解答。
摘要由CSDN通过智能技术生成

C++ 读写Mysql 数据库时,总是乱码, 数据库编码为  UTF8, C++客户端如果设为UTF8时,就是乱码,但C++客户端如果设为GB2312时,就没问题了。

原因再研究,如果有哪位大拿知道原因,还请告诉下

0818b9ca8b590ca3270a3433284dd417.png

int SCmysql::ConnMySQL(char *host, char * port, char * Db, char * user, char* passwd, char * charset, char * Msg)

{

if (mysql_init(&mysql) == NULL)

{

Msg = "inital mysql handle error";

return 1;

}

if (mysql_real_connect(&mysql, host, user, passwd, Db, 0, NULL, 0) == NULL)

{

Msg = "Failed to connect to database: Error";

return 1;

}

//mysql_query(&mysql, "SET NAMES GB2312");

if (mysql_set_character_set(&mysql, charset) != 0)

{

Msg = "mysql_set_character_set Error";

return 1;

}

return 0;

}

mysql_query(&mysql, "SET NAMES GB2312");

mysql_set_character_set(&mysql, charset)

连接后,设置下编码即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值