數據庫采用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。假如頁面申明的編碼與數據庫內部編碼一致可以不設定連接編碼。
10年的東源網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網整合營銷推廣的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整東源建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。成都創新互聯公司從事“東源網站設計”,“東源網站推廣”以來,每個客戶項目都認真落實執行。
事實上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和Mysql中文亂碼的問題。
以前的國外主機用的Mysql是4.x系列的,感覺還比較好,都無論GBK和UTF-8都沒有亂碼,沒想到新的主機的Mysql是5.0版本的,導入數據后,用Php讀出來全是問號,亂碼一片,記得我以前也曾經有過一次切換出現亂碼的經驗,原因肯定是Mysql版本之間的差異問題。
只好查資料,發現了一個解決方法,就是在mysql_connect后面加一句SET
NAMES
UTF8,即可使得UTF8的數據庫消除亂碼,對于GBK的數據庫則使用SET
NAMES
GBK,代碼如下:
$mysql_mylink
=
mysql_connect($mysql_host,
$mysql_user,
$mysql_pass);
mysql_query("SET
NAMES
'GBK'");
以上就是小編為大家帶來的PHP讀MYSQL中文亂碼的快速解決方法的全部內容了,希望對大家有所幫助,多多支持腳本之家~
文章標題:PHP從數據庫中讀取亂碼 php讀取mysql數據
分享URL:http://vcdvsql.cn/article34/dopjipe.html
成都網站建設公司_創新互聯,為您提供域名注冊、電子商務、網站收錄、云服務器、靜態網站、做網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯