MYSQL中文亂碼問題的解決方案

一、亂碼的原因:

1、 client客戶端的編碼不是utf8

2、server端的編碼不是utf8

3、database數據庫的編碼不是utf8

4、數據庫的表的編碼不是utf8

5、表中的列字段編碼不是utf8

主要的原因在於前三個偏多。

二、查看數據庫的編碼方式

mysql>show variables like ‘character%';

此截圖是解決之後的,查看哪個不是和上面一樣。

三、解決的辦法有倆種:

1、對/etc/mysql/my.cnf 配置文件進行修改

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

2、由mysql -uroot -p命令進入mysql,輸入以下設置

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

針對在客戶端輸入:數據庫、表、列字段設置

alter database <數據庫名> character set utf8;

alter table <表名> character set utf8;

alter table <表名> modify <字段名> character set utf8;

註意:設置之後記得重啟,輸入命令:service mysql restart

四、本人在項目遇到亂碼問題是以下方法解決的

出現問題的形式:項目的服務器向數據庫插入數據時,表中的數據中文為亂碼。

解決方法:對封裝的數據庫操作類中,建立連接數據庫時,設置字符集utf8

 //建立連接後, 自動調用設置字符集語句,_dbConf._charset = utf8
 if(!_dbConf._charset.empty()) {	
 if (mysql_options(_pstMql, MYSQL_SET_CHARSET_NAME, _dbConf._charset.c_str())) {
 throw MysqlHelper_Exception(string("MysqlHelper::connect: mysql_options MYSQL_SET_CHARSET_NAME ") + _dbConf._charset + ":" + string(mysql_error(_pstMql)));
 }
 }

完美解決向數據庫插入數據時中文亂碼問題。

總結

到此這篇關於MYSQL中文亂碼問題解決的文章就介紹到這瞭,更多相關MYSQL中文亂碼內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: