access的中文版默認(rèn)是GBK格式的,是無(wú)法改變字符類型的,所以用php讀取的時(shí)候會(huì)亂碼。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站制作、石樓網(wǎng)絡(luò)推廣、小程序設(shè)計(jì)、石樓網(wǎng)絡(luò)營(yíng)銷、石樓企業(yè)策劃、石樓品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供石樓建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
解決方法是:使用iconv轉(zhuǎn)換
一、使用 iconv函數(shù)制作一個(gè)轉(zhuǎn)碼的自定義從GBK轉(zhuǎn)到UTF-8的函數(shù),如以下代碼:
function enc($c){return iconv('gbk','utf-8',$c);}
二、為了寫入數(shù)據(jù)庫(kù)的編碼是符合數(shù)據(jù)庫(kù)需要的,所以我們還要制作一個(gè)從UTF-8轉(zhuǎn)向GBK的函數(shù):
function dec($c){return iconv('utf-8','gb2312',$c);}
制作好了轉(zhuǎn)碼函數(shù),接下就是正常使用了。在從數(shù)據(jù)庫(kù)里面調(diào)數(shù)據(jù)顯示在頁(yè)面的時(shí)候使用enc()函數(shù),從頁(yè)面提交數(shù)據(jù)到數(shù)據(jù)庫(kù)時(shí)使用dec()函數(shù),這樣就可以很好的解決PHP使用UTF-8編碼,ACCESS使用系統(tǒng)默認(rèn)編碼的問(wèn)題了。
從你的截圖來(lái)看應(yīng)該數(shù)據(jù)庫(kù)讀取的數(shù)據(jù)沒有問(wèn)題,問(wèn)題有可能出在你的前臺(tái)顯示上面,在頁(yè)面輸入的時(shí)候是不是對(duì)應(yīng)的字段取得有問(wèn)題?;蛟S你去的東西根本就沒有存在于讀出的數(shù)組中。
這個(gè)可能是你在安裝環(huán)境的時(shí)候出現(xiàn)了問(wèn)題,在安裝mysql的時(shí)候,數(shù)據(jù)庫(kù)默認(rèn)的不是gb2312,是西歐字符,建議你重新安裝數(shù)據(jù)庫(kù),或是使用wampsever集成安裝環(huán)境,默認(rèn)數(shù)據(jù)庫(kù)是utf8的,只要你建的數(shù)據(jù)庫(kù)整理為utf8
網(wǎng)頁(yè)文件也保存為utf8的
(不要bom頭的那種)以后寫php就很少出現(xiàn)問(wèn)題啦。要是在php文件的最上面一行再加上這么一句代碼,?php
header("Content-Type:text/html;
charset=utf-8");?,那出現(xiàn)問(wèn)題的幾率就更小了。
亂碼一直是困擾PHP初學(xué)者的一個(gè)非常大的問(wèn)題,現(xiàn)在總結(jié)下造成亂碼的原因及解決方法:
一、HTML頁(yè)面編碼:meta http-equiv=content-type content=text/html; charset=utf-8 這里的編碼要和數(shù)據(jù)庫(kù)編碼,及連接數(shù)據(jù)庫(kù)編碼;
二、文件在存儲(chǔ)編碼:比如文件inde.php,改變其存儲(chǔ)編碼為所需編碼。只需用EditPlus等文本編輯軟件 文件另存為,在編碼中選擇正確的編碼(這點(diǎn)很多人都會(huì)忽略);
三、數(shù)據(jù)庫(kù)編碼:比如用的是phpmyadmin 選擇數(shù)據(jù)庫(kù)后,選擇操作選項(xiàng)。下面有一個(gè)整理,這里面也要設(shè)置成統(tǒng)一的編碼;
四、表編碼:操作和第三點(diǎn)類似。這里就不重復(fù)了;
五、字段編碼:在建表的建字段的時(shí)候,有個(gè)整理。如果內(nèi)容有漢字,就一定要改成統(tǒng)一的編碼;
六、連接數(shù)據(jù)庫(kù)時(shí)mysql_select_db()后面,要加一句 mysql_query( set names utf8 );
七、 (剛遇到的)本地測(cè)試成功后的網(wǎng)站,傳到網(wǎng)上去,會(huì)有亂碼。可能會(huì)是在本地導(dǎo)出數(shù)據(jù)時(shí)沒有選擇正確的編碼,所以才會(huì)在導(dǎo)入到web上后有亂碼問(wèn)題。