access的中文版默認是GBK格式的,是無法改變字符類型的,所以用php讀取的時候會亂碼。
為王益等地區用戶提供了全套網頁設計制作服務,及王益網站建設行業解決方案。主營業務為成都網站設計、做網站、王益網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
解決方法是:使用iconv轉換
一、使用 iconv函數制作一個轉碼的自定義從GBK轉到UTF-8的函數,如以下代碼:
function enc($c){return iconv('gbk','utf-8',$c);}
二、為了寫入數據庫的編碼是符合數據庫需要的,所以我們還要制作一個從UTF-8轉向GBK的函數:
function dec($c){return iconv('utf-8','gb2312',$c);}
制作好了轉碼函數,接下就是正常使用了。在從數據庫里面調數據顯示在頁面的時候使用enc()函數,從頁面提交數據到數據庫時使用dec()函數,這樣就可以很好的解決PHP使用UTF-8編碼,ACCESS使用系統默認編碼的問題了。
也許是數據庫的問題,我也遇到過,我用的是wampserver,界面的工具,直接點鼠標就可能建成mysql數據庫,建成后導入數據,查詢數據庫返回面而的是亂碼,我遇到的情況是這樣的:
1、建庫用gbk,如圖。
2、導入表及數據時,默認是utf,此處要改成gbk就不是亂碼了,如第圖底頁面,如果是默認的或是其它的字符集,能導入成功但是亂碼。另外直接把sql粘貼到sql窗口,也不是亂碼。
希望能幫到你,呵呵~
set
names
只是告訴數據庫,取出和存入的字符編碼是什么,與數據庫內部使用什么編碼儲存沒有關系。
既然你設定了utf8
那么請檢查
php文件編碼是否是utf8,不是的話使用
header('Content-Type:text/html;
charset=utf-8');
再檢查html頁面編碼是否utf8,不是的話使用
meta
http-equiv="content-type"
content="text/html;charset=utf-8"
/
文件編碼需要做到三個編碼一致,如果你做到以下三個編碼一致就永遠不會出現亂碼了!!!!!
(1)數據庫編碼
數據庫編碼注意的是數據庫表字段的編碼和數據庫客戶端編碼,比如表字段的編碼是UTF-8,操作數據庫PHP文件編碼是GB2312, 怎樣才不會出現亂碼呢?這個時候就要用SET NAMES GB2312來設置數據庫服務器的客戶端的編碼,這樣數據庫服務器就會自動將數據庫中編碼為UTF-8的數據自動轉化為GB2312,在接收的PHP文件就保證收到的數據不會有亂碼
(2)PHP文件編碼
也就是你在保存文件時選擇的文件編碼,如果不是當前你想要的編碼可以通過“另存為”改變編碼
(3)HTML中meta http-equiv="content-type" content="text/html;charset=gb2312"/設置客戶端瀏覽器顯示數據的編碼,其本質是設置HTTP中Content-Type報頭的值,PHP中要做到這一點可以用 header("content-type:text/html;charset=gb2312")
做到上面各編碼一致的編碼一致,不會出現亂碼的!!
新聞標題:php讀寫數據庫編碼 php設置數據庫編碼格式
URL地址:http://m.newbst.com/article12/dogpsgc.html
成都網站建設公司_創新互聯,為您提供全網營銷推廣、定制開發、網站改版、小程序開發、網站建設、關鍵詞優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯