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使用系統默認編碼的問題了。
數據庫采用UTF8編碼,而頁面申明編碼是GB2312,這是最常見的產生亂碼的原因。這時候在PHP腳本里面直接SELECT數據出來的就是亂碼,需要在查詢前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");來設定MYSQL連接編碼,保證頁面申明編碼與這里設定的連接編碼一致(GBK是GB2312的擴展)。如果頁面是UTF-8編碼的話,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如頁面申明的編碼與數據庫內部編碼一致可以不設定連接編碼。
事實上MYSQL配置文件my.ini中定義了2個默認編碼,分別是[client]里的default-character-set和[mysqld]里的default-character-set來分別設定默認時候客戶端連接和數據庫內部所采用的編碼。上面指定的編碼其實是MYSQL客戶端連接服務器時候的命令行參數character_set_client,來告訴MYSQL服務器接受到的客戶端數據是什么編碼的,而不是采用默認編碼。
轉自:
?php??
echo?'pimg?src="centergoods.php?action=showid='.$val['id'].'t='.time().'"?width="150"/p';??
header('content-type:'.$b['type']);?
echo?$b['pic'];
................
以上代碼在header發送之前有個echo輸出了一串字符串.有些header信息要求先發送,之前不能有其他輸出.你將header這句放在echo輸出之前.
另外,在上面一段代碼中,你將上傳的圖片數據直接保存到數據庫中,然后在下面取出來直接發送給瀏覽器,這是什么邏輯?你發送出去的將是圖片的原始數據,瀏覽器就是按原樣顯示,一堆亂碼.如果你要讓它知道這是一張圖片,你也得使用header來標識這是圖片類型的文件.當然最后是一個單獨的php文件處理并輸出圖片格式的數據供img調用.
本文名稱:php從數據取出亂碼 php從數據庫取數據輸出
本文網址:http://www.yijiale78.com/article2/ddosdic.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、響應式網站、App設計、網頁設計公司、網站建設、搜索引擎優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯