再議MySQL 亂碼問(wèn)題的實(shí)際解決
以前的文章我們有對(duì)MySQL 亂碼問(wèn)題的實(shí)際解決方案進(jìn)行分析,以下的文章主要介紹的是MySQL 亂碼的實(shí)際解決方案 即,再談亂碼問(wèn)題如何正確解決MySQL數(shù)據(jù)中出現(xiàn)的中文亂碼問(wèn)題的介紹。
在之前的文章里,我已經(jīng)提過(guò)如何解決JSP中亂碼問(wèn)題(解決tomcat下中文亂碼問(wèn)題 ),其中也詳細(xì)解說(shuō)了MySQL亂碼問(wèn)題,相信通過(guò)里面的辦法,肯定都已經(jīng)解決了JSP里的亂碼問(wèn)題,不過(guò)還是有些人的MySQL亂碼問(wèn)題沒(méi)有得到解決,包括我自己,所以又找了一些資料,希望這次能完全解決MySQL數(shù)據(jù)庫(kù)的亂碼問(wèn)題。
很精辟的總結(jié):
經(jīng)常更換虛擬主機(jī),而各個(gè)服務(wù)商的MySQL版本不同,當(dāng)導(dǎo)入數(shù)據(jù)后,總會(huì)出現(xiàn)亂碼等無(wú)法正常顯示的問(wèn)題,查了好多資料,總結(jié)出自己的一點(diǎn)技巧:
WINDOWS 下導(dǎo)入應(yīng)該這樣
使用MySQL的命令
在DOS命令下進(jìn)入MySQL的bin目錄下,輸入MySQL -uroot -p密碼 數(shù)據(jù)庫(kù)名稱<要恢復(fù)的數(shù)據(jù)庫(kù), 例如我們要把D盤(pán)的一個(gè)名稱為test.sql的數(shù)據(jù)庫(kù)恢復(fù)到本地的test2這個(gè)數(shù)據(jù)庫(kù),那么就這樣:
MySQL -uroot -p密碼 test2以前的國(guó)外主機(jī)用的MySQL是4.x系列的,感覺(jué)還比較好,都無(wú)論GBK和UTF-8都沒(méi)有亂碼,沒(méi)想到新的主機(jī)的MySQL是5.0版本的,導(dǎo)入數(shù)據(jù)后,用Php讀出來(lái)全是問(wèn)號(hào),亂碼一片,記得我以前也曾經(jīng)有過(guò)一次切換出現(xiàn)亂碼的經(jīng)驗(yàn),原因肯定是MySQL版本之間的差異問(wèn)題。
只好查資料,發(fā)現(xiàn)了一個(gè)解決方法,就是在MySQL_connect后面加一句SET NAMES UTF8,即可使得UTF8的數(shù)據(jù)庫(kù)消除MySQL 亂碼,對(duì)于GBK的數(shù)據(jù)庫(kù)則使用SET NAMES GBK,代碼如下:
- $MySQL_mylink = MySQL_connect($MySQL_host, $MySQL_user, $MySQL_pass);
- MySQL_query("SET NAMES 'GBK'");
數(shù)據(jù)庫(kù)字符集為utf-8
連接語(yǔ)句用這個(gè)
- MySQL_query("SET NAMES 'UTF8'");
- MySQL_query("SET CHARACTER SET UTF8");
- MySQL_query("SET CHARACTER_SET_RESULTS=UTF8'");
還有個(gè)方法就是,如果你自己的機(jī)器的話,可以更改MySQL字符集,一般在MYSQ4和MySQL5這兩個(gè)版本中有效。以上的相關(guān)內(nèi)容就是對(duì)MySQL 亂碼解決方案的介紹,望你能有所收獲。
【編輯推薦】