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!