php讀取數(shù)據(jù)亂碼 php讀取數(shù)據(jù)亂碼怎么回事

PHP讀MYSQL中文亂碼的快速解決方法

打算切換某個網站的主機,沒想到遇到Php和Mysql中文亂碼的問題。

創(chuàng)新互聯(lián)秉承實現(xiàn)全網價值營銷的理念,以專業(yè)定制企業(yè)官網,成都網站建設、做網站,成都微信小程序,網頁設計制作,移動網站建設,全網營銷推廣幫助傳統(tǒng)企業(yè)實現(xiàn)“互聯(lián)網+”轉型升級專業(yè)定制企業(yè)官網,公司注重人才、技術和管理,匯聚了一批優(yōu)秀的互聯(lián)網技術人才,對客戶都以感恩的心態(tài)奉獻自己的專業(yè)和所長。

以前的國外主機用的Mysql是4.x系列的,感覺還比較好,都無論GBK和UTF-8都沒有亂碼,沒想到新的主機的Mysql是5.0版本的,導入數(shù)據(jù)后,用Php讀出來全是問號,亂碼一片,記得我以前也曾經有過一次切換出現(xiàn)亂碼的經驗,原因肯定是Mysql版本之間的差異問題。

只好查資料,發(fā)現(xiàn)了一個解決方法,就是在mysql_connect后面加一句SET

NAMES

UTF8,即可使得UTF8的數(shù)據(jù)庫消除亂碼,對于GBK的數(shù)據(jù)庫則使用SET

NAMES

GBK,代碼如下:

$mysql_mylink

=

mysql_connect($mysql_host,

$mysql_user,

$mysql_pass);

mysql_query("SET

NAMES

'GBK'");

以上就是小編為大家?guī)淼腜HP讀MYSQL中文亂碼的快速解決方法的全部內容了,希望對大家有所幫助,多多支持腳本之家~

PHP讀取Access數(shù)據(jù)庫 出亂碼

access的中文版默認是GBK格式的,是無法改變字符類型的,所以用php讀取的時候會亂碼。

解決方法是:使用iconv轉換

一、使用 iconv函數(shù)制作一個轉碼的自定義從GBK轉到UTF-8的函數(shù),如以下代碼:

function enc($c){return iconv('gbk','utf-8',$c);}

二、為了寫入數(shù)據(jù)庫的編碼是符合數(shù)據(jù)庫需要的,所以我們還要制作一個從UTF-8轉向GBK的函數(shù):

function dec($c){return iconv('utf-8','gb2312',$c);}

制作好了轉碼函數(shù),接下就是正常使用了。在從數(shù)據(jù)庫里面調數(shù)據(jù)顯示在頁面的時候使用enc()函數(shù),從頁面提交數(shù)據(jù)到數(shù)據(jù)庫時使用dec()函數(shù),這樣就可以很好的解決PHP使用UTF-8編碼,ACCESS使用系統(tǒng)默認編碼的問題了。

用PHP從數(shù)據(jù)庫中取出的中文是亂碼,怎么處理能使中文正常顯示?

數(shù)據(jù)庫采用UTF8編碼,而頁面申明編碼是GB2312,這是最常見的產生亂碼的原因。這時候在PHP腳本里面直接SELECT數(shù)據(jù)出來的就是亂碼,需要在查詢前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");來設定MYSQL連接編碼,保證頁面申明編碼與這里設定的連接編碼一致(GBK是GB2312的擴展)。如果頁面是UTF-8編碼的話,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如頁面申明的編碼與數(shù)據(jù)庫內部編碼一致可以不設定連接編碼。

事實上MYSQL配置文件my.ini中定義了2個默認編碼,分別是[client]里的default-character-set和[mysqld]里的default-character-set來分別設定默認時候客戶端連接和數(shù)據(jù)庫內部所采用的編碼。上面指定的編碼其實是MYSQL客戶端連接服務器時候的命令行參數(shù)character_set_client,來告訴MYSQL服務器接受到的客戶端數(shù)據(jù)是什么編碼的,而不是采用默認編碼。

轉自:

名稱欄目:php讀取數(shù)據(jù)亂碼 php讀取數(shù)據(jù)亂碼怎么回事
本文來源:http://www.muchs.cn/article30/doeegso.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供商城網站微信公眾號、微信小程序、網站設計定制網站、云服務器

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設公司