mysql中文顯示亂碼問題「已解決」

查了半天,都快絕望了,終於解決了。ios

問題是程序插入的中文在數據庫裏顯示爲亂碼,程序讀出來仍然是中文。sql

很簡單。數據庫

程序代碼裏面,連接數據庫以後,插入數據以前,加入執行一條sql語句 SET NAMES utf8,形如:app

	db_kop.modify_db("SET NAMES utf8");

 而後再操做就行了。fetch

#include <iostream>
#include <string>
#include <stdio.h>
#include "db_helper.h"

using std::cout;
using std::endl;

int main(int argc, char* argv[])
{
	static db_helper db_kop;
	db_kop.connect_db("127.0.0.1", "root", "cptbtptp");
	db_kop.modify_db("SET NAMES utf8");

	db_kop.modify_db("INSERT INTO `kop_fnic`.`kop_rule`(`rid`, `protocol`, `app`, `behav`, `os`, `agent`, `cat`) VALUES ('','a','0','新','浪','微','博')");

	db_kop.select_db("SELECT * FROM `kop_fnic`.`kop_rule` LIMIT 0 , 30");
	while (char** r = db_kop.fetch_row()) {
		printf("%s %s %s %s %s %s\n",  r[1], r[2], r[3], r[4], r[5], r[6]);
	}


	db_kop.modify_db("INSERT INTO `kop_fnic`.`kop_rule`(`rid`, `protocol`, `app`, `behav`, `os`, `agent`, `cat`) VALUES ('','a','1','新','浪','微','博')");

	db_kop.modify_db("INSERT INTO `kop_fnic`.`kop_rule`(`rid`, `protocol`, `app`, `behav`, `os`, `agent`, `cat`) VALUES ('','a','2','新','浪','微','博')");
//	db_kop.modify_db("SET NAMES utf8");
	sleep(1);
	db_kop.modify_db("INSERT INTO `kop_fnic`.`kop_rule`(`rid`, `protocol`, `app`, `behav`, `os`, `agent`, `cat`) VALUES ('','a','3','新','浪','微','博')");

	db_kop.select_db("SELECT * FROM `kop_fnic`.`kop_rule` LIMIT 0 , 30");
	while (char** r = db_kop.fetch_row()) {
		printf("%s %s %s %s %s %s\n",  r[1], r[2], r[3], r[4], r[5], r[6]);
	}
	return 0;
}
相關文章
相關標籤/搜索