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