新聞中心
PHP讀取Access數(shù)據(jù)庫(kù) 出亂碼
access的中文版默認(rèn)是GBK格式的,是無(wú)法改變字符類(lèi)型的,所以用php讀取的時(shí)候會(huì)亂碼。
為王益等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及王益網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、王益網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
解決方法是:使用iconv轉(zhuǎn)換
一、使用 iconv函數(shù)制作一個(gè)轉(zhuǎn)碼的自定義從GBK轉(zhuǎn)到UTF-8的函數(shù),如以下代碼:
function enc($c){return iconv('gbk','utf-8',$c);}
二、為了寫(xiě)入數(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)題了。
php連MySQL數(shù)據(jù)庫(kù)編碼問(wèn)題
也許是數(shù)據(jù)庫(kù)的問(wèn)題,我也遇到過(guò),我用的是wampserver,界面的工具,直接點(diǎn)鼠標(biāo)就可能建成mysql數(shù)據(jù)庫(kù),建成后導(dǎo)入數(shù)據(jù),查詢數(shù)據(jù)庫(kù)返回面而的是亂碼,我遇到的情況是這樣的:
1、建庫(kù)用gbk,如圖。
2、導(dǎo)入表及數(shù)據(jù)時(shí),默認(rèn)是utf,此處要改成gbk就不是亂碼了,如第圖底頁(yè)面,如果是默認(rèn)的或是其它的字符集,能導(dǎo)入成功但是亂碼。另外直接把sql粘貼到sql窗口,也不是亂碼。
希望能幫到你,呵呵~
php向mysql表中寫(xiě)入中文,讀出來(lái)是亂碼,編碼set names utf8
set
names
只是告訴數(shù)據(jù)庫(kù),取出和存入的字符編碼是什么,與數(shù)據(jù)庫(kù)內(nèi)部使用什么編碼儲(chǔ)存沒(méi)有關(guān)系。
既然你設(shè)定了utf8
那么請(qǐng)檢查
php文件編碼是否是utf8,不是的話使用
header('Content-Type:text/html;
charset=utf-8');
再檢查html頁(yè)面編碼是否utf8,不是的話使用
meta
http-equiv="content-type"
content="text/html;charset=utf-8"
/
php文件和mysql數(shù)據(jù)庫(kù)編碼問(wèn)題
文件編碼需要做到三個(gè)編碼一致,如果你做到以下三個(gè)編碼一致就永遠(yuǎn)不會(huì)出現(xiàn)亂碼了!!!!!
(1)數(shù)據(jù)庫(kù)編碼
數(shù)據(jù)庫(kù)編碼注意的是數(shù)據(jù)庫(kù)表字段的編碼和數(shù)據(jù)庫(kù)客戶端編碼,比如表字段的編碼是UTF-8,操作數(shù)據(jù)庫(kù)PHP文件編碼是GB2312, 怎樣才不會(huì)出現(xiàn)亂碼呢?這個(gè)時(shí)候就要用SET NAMES GB2312來(lái)設(shè)置數(shù)據(jù)庫(kù)服務(wù)器的客戶端的編碼,這樣數(shù)據(jù)庫(kù)服務(wù)器就會(huì)自動(dòng)將數(shù)據(jù)庫(kù)中編碼為UTF-8的數(shù)據(jù)自動(dòng)轉(zhuǎn)化為GB2312,在接收的PHP文件就保證收到的數(shù)據(jù)不會(huì)有亂碼
(2)PHP文件編碼
也就是你在保存文件時(shí)選擇的文件編碼,如果不是當(dāng)前你想要的編碼可以通過(guò)“另存為”改變編碼
(3)HTML中meta http-equiv="content-type" content="text/html;charset=gb2312"/設(shè)置客戶端瀏覽器顯示數(shù)據(jù)的編碼,其本質(zhì)是設(shè)置HTTP中Content-Type報(bào)頭的值,PHP中要做到這一點(diǎn)可以用 header("content-type:text/html;charset=gb2312")
做到上面各編碼一致的編碼一致,不會(huì)出現(xiàn)亂碼的!!
分享題目:php讀寫(xiě)數(shù)據(jù)庫(kù)編碼 php設(shè)置數(shù)據(jù)庫(kù)編碼格式
URL鏈接:http://www.ef60e0e.cn/article/dogpsgc.html