確保三碼合一就可以了..
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、靖遠(yuǎn)網(wǎng)站維護(hù)、網(wǎng)站推廣。
第一個(gè)是數(shù)據(jù)庫(kù)的字符集
第二個(gè)就是存進(jìn)去的時(shí)候字符集
第三個(gè)就是顯示的時(shí)候的字符集
這三個(gè)都有可能造成亂碼;
第一個(gè) 舉例是:如果你插入的時(shí)候用的是GB2312 ,但你表中的default charset是utf8 那么,就有可能亂碼了.
第二種情況就是你插入正確 但你查詢的時(shí)候以UTF8查詢出來,但你在HTML頁面里設(shè)置編碼如果非UTF8那么也有可能造成亂碼.
按以下步驟檢查處理。
(1)HTML編碼指定是否正確?檢查head段中是否包含以下
meta
http-equiv="Content-type"
content="text/html;
charset=utf-8"
/
(2)檢查HTML文件本身的編碼有無問題。
(3)查詢數(shù)據(jù)庫(kù)之前設(shè)置編碼。
$sql
=
"set
names
utf8";
mysql_query($sql,$local_conn);
(4)檢查數(shù)據(jù)庫(kù)編碼及數(shù)據(jù)表及字段編碼是否均為UTF8。注意,數(shù)據(jù)庫(kù)編碼及表編碼及字段編碼不是一個(gè)概念。
access的中文版默認(rèn)是GBK格式的,是無法改變字符類型的,所以用php讀取的時(shí)候會(huì)亂碼。
解決方法是:使用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ù)顯示在頁面的時(shí)候使用enc()函數(shù),從頁面提交數(shù)據(jù)到數(shù)據(jù)庫(kù)時(shí)使用dec()函數(shù),這樣就可以很好的解決PHP使用UTF-8編碼,ACCESS使用系統(tǒng)默認(rèn)編碼的問題了。