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 *** 這條語句的作用是一樣的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM