打算切換某個網站的主機,沒想到遇到Php和Mysql中文亂碼的問題。
創(chuàng)新互聯建站基于成都重慶香港及美國等地區(qū)分布式IDC機房數據中心構建的電信大帶寬,聯通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務器托管報價,主機托管價格性價比高,為金融證券行業(yè)成都西云數據中心,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。
以前的國外主機用的Mysql是4.x系列的,感覺還比較好,都無論GBK和UTF-8都沒有亂碼,沒想到新的主機的Mysql是5.0版本的,導入數據后,用Php讀出來全是問號,亂碼一片,記得我以前也曾經有過一次切換出現亂碼的經驗,原因肯定是Mysql版本之間的差異問題。
只好查資料,發(fā)現了一個解決方法,就是在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'");
以上就是小編為大家?guī)淼腜HP讀MYSQL中文亂碼的快速解決方法的全部內容了,希望對大家有所幫助,多多支持腳本之家~
這個可能是你在安裝環(huán)境的時候出現了問題,在安裝mysql的時候,數據庫默認的不是gb2312,是西歐字符,建議你重新安裝數據庫,或是使用wampsever集成安裝環(huán)境,默認數據庫是utf8的,只要你建的數據庫整理為utf8
網頁文件也保存為utf8的
(不要bom頭的那種)以后寫php就很少出現問題啦。要是在php文件的最上面一行再加上這么一句代碼,?php
header("Content-Type:text/html;
charset=utf-8");?,那出現問題的幾率就更小了。
數據庫采用UTF8編碼,而頁面申明編碼是GB2312,這是最常見的產生亂碼的原因。這時候在PHP腳本里面直接SELECT數據出來的就是亂碼,需要在查詢前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");來設定MYSQL連接編碼,保證頁面申明編碼與這里設定的連接編碼一致(GBK是GB2312的擴展)。如果頁面是UTF-8編碼的話,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如頁面申明的編碼與數據庫內部編碼一致可以不設定連接編碼。
事實上MYSQL配置文件my.ini中定義了2個默認編碼,分別是[client]里的default-character-set和[mysqld]里的default-character-set來分別設定默認時候客戶端連接和數據庫內部所采用的編碼。上面指定的編碼其實是MYSQL客戶端連接服務器時候的命令行參數character_set_client,來告訴MYSQL服務器接受到的客戶端數據是什么編碼的,而不是采用默認編碼。
轉自: