MYSQL中文亂碼問(wèn)題的解決方案
一、亂碼的原因:
1、 client客戶(hù)端的編碼不是utf8
2、server端的編碼不是utf8
3、database數(shù)據(jù)庫(kù)的編碼不是utf8
4、數(shù)據(jù)庫(kù)的表的編碼不是utf8
5、表中的列字段編碼不是utf8
主要的原因在于前三個(gè)偏多。
二、查看數(shù)據(jù)庫(kù)的編碼方式
mysql>show variables like ‘character%';

此截圖是解決之后的,查看哪個(gè)不是和上面一樣。
三、解決的辦法有倆種:
1、對(duì)/etc/mysql/my.cnf 配置文件進(jìn)行修改
[mysqld] character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8
2、由mysql -uroot -p命令進(jìn)入mysql,輸入以下設(shè)置
SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8;
針對(duì)在客戶(hù)端輸入:數(shù)據(jù)庫(kù)、表、列字段設(shè)置
alter database <數(shù)據(jù)庫(kù)名> character set utf8;
alter table <表名> character set utf8;
alter table <表名> modify <字段名> character set utf8;
注意:設(shè)置之后記得重啟,輸入命令:service mysql restart
四、本人在項(xiàng)目遇到亂碼問(wèn)題是以下方法解決的
出現(xiàn)問(wèn)題的形式:項(xiàng)目的服務(wù)器向數(shù)據(jù)庫(kù)插入數(shù)據(jù)時(shí),表中的數(shù)據(jù)中文為亂碼。
解決方法:對(duì)封裝的數(shù)據(jù)庫(kù)操作類(lèi)中,建立連接數(shù)據(jù)庫(kù)時(shí),設(shè)置字符集utf8
//建立連接后, 自動(dòng)調(diào)用設(shè)置字符集語(yǔ)句,_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)));
}
}
完美解決向數(shù)據(jù)庫(kù)插入數(shù)據(jù)時(shí)中文亂碼問(wèn)題。
總結(jié)
到此這篇關(guān)于MYSQL中文亂碼問(wèn)題解決的文章就介紹到這了,更多相關(guān)MYSQL中文亂碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL-MMM安裝指南(Multi-Master Replication Manager for MySQL)
這篇文章主要介紹了mysql Multi-Master Replication Manager for MySQL的安裝方法,需要的朋友可以參考下2014-02-02
MySQL學(xué)習(xí)之?dāng)?shù)據(jù)更新操作詳解
這篇文章我們將學(xué)習(xí)一下用于數(shù)據(jù)更改的 “UPDATE” 語(yǔ)句, “UPDATE” 語(yǔ)句也是屬于 DML 這一類(lèi)數(shù)據(jù)庫(kù)操作語(yǔ)言,感興趣的可以了解一下2022-08-08
mysql 常見(jiàn)命令和學(xué)習(xí)心得
mysql 常見(jiàn)命令和學(xué)習(xí)心得,學(xué)習(xí)php的朋友需要了解的一些基礎(chǔ),方便日后的開(kāi)發(fā)。2009-09-09
MySQL 查詢(xún)樹(shù)結(jié)構(gòu)方式
今天小編就為大家分享一篇MySQL 查詢(xún)樹(shù)結(jié)構(gòu)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
MySQL遷移到Oracle數(shù)據(jù)庫(kù)的超詳細(xì)步驟和方法總結(jié)
今天接到一個(gè)任務(wù),讓我把MySQL中的表與數(shù)據(jù)移植到Oracle中,所以這里總結(jié)下,這篇文章主要給大家介紹了關(guān)于MySQL遷移到Oracle數(shù)據(jù)庫(kù)的超詳細(xì)步驟和方法,需要的朋友可以參考下2023-11-11
MySQL8.4設(shè)置密碼規(guī)則為mysql_native_password問(wèn)題
這篇文章主要介紹了MySQL8.4設(shè)置密碼規(guī)則為mysql_native_password問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
關(guān)于for update和lock in share mode的區(qū)別及說(shuō)明
這篇文章主要介紹了關(guān)于for update和lock in share mode的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
MySQL請(qǐng)求處理全流程之如何從SQL語(yǔ)句到數(shù)據(jù)返回
這篇文章主要介紹了MySQL請(qǐng)求處理全流程之如何從SQL語(yǔ)句到數(shù)據(jù)返回,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-03-03

