mysql c++ 亂碼 解決方法
阿新 • • 發佈:2019-01-05
C++ 讀寫Mysql 資料庫時,總是亂碼, 資料庫編碼為 UTF8, C++客戶端如果設為UTF8時,就是亂碼,但C++客戶端如果設為GB2312時,就沒問題了。
原因再研究,如果有哪位大拿知道原因,還請告訴下。
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)
連線後,設定下編碼即可。