C/C++ 操作mysql字符集设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++ 操作mysql字符集设置相关的知识,希望对你有一定的参考价值。

Linux下,当我们用mysql c api 去操作mysqldb的时候,默认情况下,程序会以Latin1这种字符集去进行sql操作,这种情况,很可能就会出现乱码,

比如,数据库设置的字符集是utf8, 然后我们通过程序向其中插入一条记录,然后我们去查询的时候,就会出现乱码。

为了解决这个问题,我们可以调用 int mysql_set_character_set(MYSQL *mysql, const char *csname) 这个函数,去对每一个到mysql的连接设置对应字符集,就可以解决乱码问题。例如下代码:

MYSQL mysql;
 
mysql_init(&mysql);
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
    fprintf(stderr, "Failed to connect to database: Error: %s\n",
          mysql_error(&mysql));
}
 
if (!mysql_set_character_set(&mysql, "utf8"))
{
    printf("New client character set: %s\n",
           mysql_character_set_name(&mysql));
}

  有时候,当我们直接在mysql客户端去进行sql操作的时候,为了解决乱码问题,一般在执行一条sql语句之前,都会执行:set names ***,

这个函数mysql_set_character_set() 跟set names *** 这条语句的作用是一样的。

以上是关于C/C++ 操作mysql字符集设置的主要内容,如果未能解决你的问题,请参考以下文章

[linux][c/c++]代码片段01

[linux][c/c++]代码片段02

latex在vim中的代码片段

freecplus框架-MySQL数据库操作

Apollo Codegen 没有找到生成代码的操作或片段

VSCode自定义代码片段——git命令操作一个完整流程