php與數(shù)據(jù)庫亂碼問題 php的數(shù)據(jù)庫配置在哪

php中為什么插入數(shù)據(jù)庫的中文變成亂碼

請將數(shù)據(jù)庫的編碼,表的編碼以及字段的編碼與網(wǎng)頁代碼的編碼保持一致。

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)宜良免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

另外注意文件本身的編碼與html代碼頭meta中的編碼說明保持一致。

那你看看是不是在連接數(shù)據(jù)庫的時候采用了utf8格式,語法如mysql_query('set

names

utf8');

PHP在顯示數(shù)據(jù)庫中的中文數(shù)據(jù)時顯示亂碼

其實(shí),只要注意文件編寫的時候編碼、數(shù)據(jù)庫的編碼一般就不會有這個問題的,但是,比如你用DW(dwcs4貌似沒有這個現(xiàn)象)打開文件,它會以默認(rèn)的編碼讀取,一旦你保存了,那就完了,用EditPlus打開之后,右下角有編碼提示,如果發(fā)現(xiàn)不對,另存為,覆蓋一下,就可以了

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

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

解決方法是:使用iconv轉(zhuǎn)換

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

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

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

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

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

有關(guān)PHP 數(shù)據(jù)庫亂碼的問題

按以下步驟檢查處理。

(1)HTML編碼指定是否正確?檢查head段中是否包含以下

meta

http-equiv="Content-type"

content="text/html;

charset=utf-8"

/

(2)檢查HTML文件本身的編碼有無問題。

(3)查詢數(shù)據(jù)庫之前設(shè)置編碼。

$sql

=

"set

names

utf8";

mysql_query($sql,$local_conn);

(4)檢查數(shù)據(jù)庫編碼及數(shù)據(jù)表及字段編碼是否均為UTF8。注意,數(shù)據(jù)庫編碼及表編碼及字段編碼不是一個概念。

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

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

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

轉(zhuǎn)自:

網(wǎng)站標(biāo)題:php與數(shù)據(jù)庫亂碼問題 php的數(shù)據(jù)庫配置在哪
轉(zhuǎn)載注明:http://www.muchs.cn/article40/dosedho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站維護(hù)、用戶體驗(yàn)、App設(shè)計(jì)、ChatGPT、服務(wù)器托管

廣告

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

營銷型網(wǎng)站建設(shè)