當前位置:首頁 » 編程語言 » php頁面編碼

php頁面編碼

發布時間: 2022-05-30 19:11:08

php怎樣獲取當前頁面所使用的編碼

通過head中meta charset屬性可以得到當前頁的編碼,不過也是用的JS - - 和PHP沒關系 你也可以通過JS去改變編碼

㈡ php怎麼設置編碼

header("Content-type: text/html; charset=utf-8");
另外你的編輯器編碼也要對應哦

a. 如果欲使用gb2312編碼,那麼php要輸出頭:header(「Content-Type: text/html; charset=gb2312"),靜態頁面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的編碼格式為ANSI,可用記事本打開,另存為選擇編碼為ANSI,覆蓋源文件。
b. 如果欲使用utf-8編碼,那麼php要輸出頭 :header(「Content-Type: text/html; charset=utf-8"),靜態頁面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的編碼格式為utf-8。

最近需要用到iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312, 發現只有用iconv函數把抓取過來的數據一轉碼數據就會無緣無故的少一些。 讓我郁悶了好一會兒,去網上一查資料才知道這是iconv函數的一個bug。iconv在轉換字元"—"到gb2312時會出錯。解決方法很簡單,就是在 需要轉成的編碼後加 "//IGNORE" 也就是iconv函數第二個參數後,如下:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略轉換時的錯誤,如果沒有ignore參數,所有該字元後面的字元串都無法被保存。

㈢ PHP 編碼格式

你的DW編碼是GB2312
頁面輸出的是UTF-8
肯定亂碼的啊

把編碼都統一才行
header("Content-Type: text/html; charset=utf-8");

這里改成
header("Content-Type: text/html; charset=gbk");

㈣ php頁面亂碼原因

詳解PHP頁面亂碼的具體解決辦法 PHP在實際編寫代碼中,會經常出現一些問題,比如頁面出現亂碼等問題。我們接下來將會具體介紹PHP頁面亂碼的產生原因和相關解決方法。一般來說,PHP頁面亂碼的出現有2種原因,首先是由於編碼(charset)設置錯誤,導致瀏覽器以錯誤的編碼來解析,從而出現了滿屏亂七八糟的「天書」,其次是文件被以錯誤的編碼打開,然後保存,比如一個文本文件原先是GB2312編碼的,卻以UTF-8編碼打開再保存。要解決上述PHP頁面亂碼問題,首先需要知道開發中哪些環節涉及到了編碼:1、文件編碼:指的是頁面文件(.html,.php等)本身是以何種編碼來保存的。記事本和Dreamweaver在打開頁面時候會自動識別文件編碼因而不太會出問題。而ZendStudio卻不會自動識別編碼,它只會根據首選項的配置固定以某種編碼打開文件,如果工作時候一不注意,用錯誤編碼打開文件,做了修改之後一保存,亂碼就出現了(我深有體會)。2、頁面申明編碼:在HTML代碼HEAD裡面,可以用來告訴瀏覽器網頁採用了什麼編碼,目前中文網站開發中XXX主要用的是GB2312和UTF-8兩種編碼。3、資料庫連接編碼:指的是進行資料庫操作時候以哪種編碼與資料庫傳輸數據,這里需要注意的是不要與資料庫本身的編碼混淆,比如Mysql內部默認是latin1編碼,也就是說Mysql是以latin1編碼來存儲數據,以其他編碼傳輸給Mysql的數據會被轉換成latin1編碼。知道了WEB開發中哪些地方涉及到了編碼,也就知道了PHP頁面亂碼產生的原因:上述3項編碼設置不一致,由於各種編碼絕大部分是兼容ASCII的,所以英文符號不會出現,中文就倒霉了。下面是一些常見的錯誤情況與解決:1、資料庫採用UTF8編碼,而頁面申明編碼是GB2312,這是最常見的產生亂碼的原因。這時候在PHP腳本裡面直接SELECT數據出來的就是PHP頁面亂碼,需要在查詢前先使用:mysql_query("SET NAMES GBK"); 來設定MYSQL連接編碼,保證頁面申明編碼與這里設定的連接編碼一致(GBK是GB2312的擴展)。如果頁面是UTF-8編碼的話,可以用: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項編碼都設置正確了還是有PHP頁面亂碼。比方說網頁是GB2312編碼的,IE等瀏覽器打開卻總是識別成UTF-8,網頁HEAD裡面已經申明是GB2312了,手動修改瀏覽器編碼為GB2312後頁面顯示正常。產生原因是伺服器Apache設定了伺服器全局的默認編碼,在httpd.conf裡面加了AddDefaultCharset UTF-8。這時候伺服器會首先發送HTTP頭給瀏覽器,其優先順序比頁面里申明編碼高,自然瀏覽器就識別錯了。解決辦法有2個,請管理員在配置文件自己的虛機里加上一條AddDefaultCharset GB2312來覆蓋全局配置,或者在自己目錄的.htaccess里配置

㈤ 怎樣設置php的編碼格式為utf-8

在 PHP 編寫過程中,一般需要注意的是三種編碼:
1、網頁字元編碼
2、文件字元編碼
3、資料庫字元編碼
只有上面3種編碼的格式都一致的情況下,才會盡可能的避免亂碼的出現。
二、如何使用Notepad++軟體設置UTF-8編碼:
用 Notepad++ 軟體打開指定的 php 文檔後,在「格式」菜單下找到「以UTF-8格式編碼"
以xxx編碼的意思是不強制轉換文件的編碼,僅僅以某種編碼來查看,不會對文件進行修改,這對打開某個文件發現都是亂碼時非常實用。
轉為xxx編碼的意思就是將文件內容強制轉換為某種編碼,這對於本來看到的就不是亂碼但需要調整右下角的文件編碼時非常好用。

㈥ 如何轉換PHP網頁中的Unicode編碼

說明沒有保存成utf-8 最簡單的方法,用記事本打開php頁面,然後另存為,看一下格式那裡是ANSI說明就是gbk,是unicode就是utf-8 DW CS4沒用過,不知道是不是一個弱智Bug 你可以用記事本,保存的時候,編碼選擇Unicode,絕對是utf-8

㈦ php頁面解決亂碼問題

1、文件編碼:指的是頁面文件(.html,.php等)本身是以何種編碼來保存的。記事本和Dreamweaver在打開頁面時候會自動識別文件編碼因而不太會出問題。而ZendStudio卻不會自動識別編碼,它只會根據首選項的配置固定以某種編碼打開文件,如果工作時候一不注意,用錯誤編碼打開文件,做了修改之後一保存,亂碼就出現了(我深有體會)。
2、頁面申明編碼:在HTML代碼HEAD裡面,可以用<meta http-equiv="Content-Type" content="text/html; charset="XXX" />來告訴瀏覽器網頁採用了什麼編碼,目前中文網站開發中XXX主要用的是GB2312和UTF-8兩種編碼。
3、資料庫連接編碼:指的是進行資料庫操作時候以哪種編碼與資料庫傳輸數據,這里需要注意的是不要與資料庫本身的編碼混淆,比如MySQL內部默認是latin1編碼,也就是說Mysql是以latin1編碼來存儲數據,以其他編碼傳輸給Mysql的數據會被轉換成latin1編碼。
知道了WEB開發中哪些地方涉及到了編碼,也就知道了PHP頁面亂碼產生的原因:上述3項編碼設置不一致,由於各種編碼絕大部分是兼容ASCII的,所以英文符號不會出現,中文就倒霉了。下面是一些常見的錯誤情況與解決:
1、資料庫採用UTF8編碼,而頁面申明編碼是GB2312,這是最常見的產生亂碼的原因。這時候在PHP腳本裡面直接SELECT數據出來的就是PHP頁面亂碼,需要在查詢前先使用:
mysql_query("SET NAMES GBK"); 來設定MYSQL連接編碼,保證頁面申明編碼與這里設定的連接編碼一致(GBK是GB2312的擴展)。如果頁面是UTF-8編碼的話,可以用:
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項編碼都設置正確了還是有PHP頁面亂碼。比方說網頁是GB2312編碼的,IE等瀏覽器打開卻總是識別成UTF-8,網頁HEAD裡面已經申明是GB2312了,手動修改瀏覽器編碼為GB2312後頁面顯示正常。產生原因是伺服器Apache設定了伺服器全局的默認編碼,在httpd.conf裡面加了AddDefaultCharset UTF-8。這時候伺服器會首先發送HTTP頭給瀏覽器,其優先順序比頁面里申明編碼高,自然瀏覽器就識別錯了。解決辦法有2個,請管理員在配置文件自己的虛機里加上一條AddDefaultCharset GB2312來覆蓋全局配置,或者在自己目錄的.htaccess里配置。

㈧ 如何用php設置utf-8編碼

在你的源文件找到<meta http-equiv="content-type" content="text/html;charset=utf-8">charset= 後面接的就是編碼,你全部改了就可以了。如果你改了之後變成亂碼的話,那你就只能先建一個utf-8編碼的網頁,把相應的內容重新輸入進去。

㈨ 靜態頁面和PHP文件關於UTF-8編碼問題

很簡單,你文件內容編碼其實是utf8的,所以一定要指定charset=utf-8,如果你指定其他編碼,肯定是亂碼。如果你要文件內容變成其他編碼(如gb2312),那你可以使用dreamweaver修改meta後,刷新一下,然後再保存,就會變成對應的編碼(gb2312)了。用其他編輯器只是改meta不管用

㈩ php頁面的要怎麼設置編碼

要使字元編碼正確顯示出來,需要3個地方的編碼設置是一樣的:

1、頁面編碼

header("Content-type:text/html;charset=utf-8");

2、頁面的文件編碼使用 utf8

3、 資料庫里的數據使用 utf8 編碼

熱點內容
廣聯達正版加密鎖 發布:2025-02-11 22:08:02 瀏覽:803
斯諾克資料庫 發布:2025-02-11 21:54:02 瀏覽:533
安卓手機降噪功能在哪裡打開呢 發布:2025-02-11 21:52:56 瀏覽:701
騰訊雲伺服器購買網址 發布:2025-02-11 21:37:46 瀏覽:61
安卓電話視頻怎麼投電視上 發布:2025-02-11 21:32:27 瀏覽:19
易簽到源碼 發布:2025-02-11 21:31:03 瀏覽:499
編程班會 發布:2025-02-11 21:27:19 瀏覽:739
ubuntu編譯fortran 發布:2025-02-11 21:21:59 瀏覽:202
雲伺服器寬頻單位 發布:2025-02-11 20:48:11 瀏覽:538
安卓數據線公頭是哪個 發布:2025-02-11 20:45:42 瀏覽:812