」申明格式utf-8;3、透過「mysql_query ("SET NAMES GBK");」來設定MYSQL連線編碼。"/> 」申明格式utf-8;3、透過「mysql_query ("SET NAMES GBK");」來設定MYSQL連線編碼。">
dw php網頁中文亂碼的解決方法:1、將標題編碼設定為UTF8;2、使用Dreamweaver新建php檔案時,透過「2458c20ad8814e8d5c01cce841c2226d」申明格式utf -8;3、透過「mysql_query("SET NAMES GBK");」來設定MYSQL連線編碼。
="utf-8">
本教學操作環境:Windows7系統、dreamweaver8版、Dell G3電腦。
dw php網頁中文亂碼怎麼辦?
Dreamweaver運行php檔案預覽介面中文亂碼解決方法
做網站開發需要處理多國不同的語言,常遇到的是中英混排。使用Dreamweaver新建、執行PHP程式碼時預覽視窗中文有時會顯示亂碼,英文可正常顯示。
#出現這種情況的原因主要有:
1、文件編碼:指的是頁面文件(.html,.php等)本身是以何種編碼來保存的。記事本和Dreamweaver 在開啟頁面時會自動識別文件編碼因而不太會出問題。而ZendStudio卻不會自動辨識編碼,它只會以某種編碼打開文件,如果工作時候一不注意,用錯誤編碼打開文件,做了修改之後一保存,亂碼就出現了。
解決的方法:頁面設置,標題/編碼,設定為UTF8
#2、頁面申明編碼:
HTML頁面編碼設定
在HTML程式碼HEAD裡面,可以用來告訴瀏覽器網頁採用了什麼編碼,目前中文網站開發中XXX主要用的是GB2312和UTF -8 兩種編碼。使用Dreamweaver新建php檔案時,需要申明格式utf-8: 2458c20ad8814e8d5c01cce841c2226d
2458c20ad8814e8d5c01cce841c2226d
1、資料庫採用UTF8 編碼,而頁面申明編碼是GB2312 ,這是最常見的產生亂碼的原因。
這時候在PHP腳本裡面直接SELECT資料出來的就是亂碼,需要在查詢前先使用: mysql_query("SET NAMES GBK"); 來設定MYSQL連線編碼,確保頁面申明編碼與這裡設定的連接編碼一致(GBK是GB2312的擴充)。如果頁面是UTF-8 編碼的話,可以用: mysql_query("SET NAMES UTF8");
PHP編碼設定
在php程式碼時最前面即第一句寫:
<?php header("Content-type:text/html;charset=utf-8"); ?>
修改php.ini檔案
修改「/etc/php5/apache2/php.ini」將
default_charset = "iso-8859-1"
修改為default_charset = "utf-8"
Mysql編碼設定
<?php mysql_query('SET NAMES UTF8'); ?>
注意是UTF8而不是一般用的UTF-8。假如頁面申明的編碼與資料庫內部編碼一致可以不設定連接編碼。
MYSQL的資料輸入輸出比上面講的更複雜一些,MYSQL設定檔my.ini中定義了2個預設編碼,分別是[client]裡的default -character-set和[mysqld] 裡的default-character-set 來分別設定預設時候客戶端連線和資料庫內部所採用的編碼。我們上面指定的編碼其實是MYSQL客戶端連線伺服器時候的命令列參數character_set_client,來告訴MYSQL伺服器接受到的客戶端資料是什麼編碼的,而不是採用預設編碼。
在前面的基礎上,還要在你的資料查詢/修改/增加之前加入資料庫編碼。
2、頁面申明編碼與文件本身編碼不一致,這種情況很少發生,因為如果編碼不一緻美工做頁面時候在瀏覽器看到的就是亂碼了。更多時候是發布以後修改一些小BUG,以錯誤編碼開啟頁面然後儲存導致的。或是用某些FTP軟體直接在線上修改文件,例如CuteFTP,因為軟體編碼配置錯誤而導致轉換錯了編碼。
3、租用虛擬主機的時候,上述3項編碼都設定正確了有時還是有亂碼。比方說網頁是GB2312 編碼的,IE等瀏覽器打開卻總是識別成UTF-8 ,網頁HEAD裡面已經申明是GB2312 了,手動修改瀏覽器編碼為GB2312 後頁顯示正常。產生原因是伺服器Apache設定了伺服器全域的預設編碼,在httpd.conf裡面加了AddDefaultCharset UTF-8 。這時候伺服器會先發送HTTP頭給瀏覽器,其優先權比頁面裡申明編碼高,自然瀏覽器就辨識錯了。解決方法有2個,請管理員在設定檔自己的虛機裡加上一條AddDefaultCharset GB2312 來覆蓋全域配置,或是在自己目錄的.htaccess裡配置。
總結: 要解決PHP中文亂碼,最快的解決辦法就是,頁面申明的編碼與資料庫內部編碼一致,如果頁面申請的頁碼與資料庫內部編碼不一致時,就設定連接編碼,mysql_query ("SET NAMES XXX "); XXX為連線編碼。如mysql_query('SET NAMES UTF8'); [2]
最後,中文成功顯示:
76c82f278ac045591c9159d381de2c57
f2fff6a208c3e290698f287c1c0e7a53
93f0f5c25f18dab9d176bd4f6de5d30e
a80eb7cbb6fff8b0ff70bae37074b813
b2386ffb911b14667cb8f0f91ea547a7中文6e916e0f7d1e588d4f442bf645aedb2f
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
4a249f0d628e2318394fd9b75b4636b1中文473f0a7621bec819994bb5020d29372a
13f8ba25135b9b670f5fc69a5ab97123
推薦學習:《PHP影片教學》
以上是dw php網頁中文亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!