PHP+MYSQL 出現亂碼的解決方案

來源:互聯網
上載者:User

肯定都已經解決了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的資料庫消除亂碼,對於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亂碼處理總結:

(1)java中處理中文字元正常,在cmd client中顯示亂碼是字元集的問題.

(2)欄位長度設定夠長,但插入中文字元時提示com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column錯誤是字元集的問題.

(3)亂碼問題歸根到底是字元集的問題,那就從字元集設定方面考慮,不外乎下面幾個方面:server,client,database,connection,results.

-------------------------解決辦法----------------------

(1)修改 my.ini(MySQL Server Instance Configuration 檔案)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.