php各種應用亂碼問題的解決方法
在使用php的時候可能會出現各種亂碼問題,那麼這個時候我們要分清楚情況一一解決問題了。下面小編為大家整理了php各種應用亂碼問題的解決方法,希望能幫到大家!
1) 使用 標籤設置頁面編碼
這個標籤的作用是聲明客户端的瀏覽器用什麼字符集編碼顯示該頁面,xxx 可以為 GB2312、GBK、UTF-8(和 MySQL 不同,MySQL 是 UTF8)等等。因此,大部分頁面可以採用這種方式來告訴瀏覽器顯示這個頁面的時候採用什麼編碼,這樣才不會造成編碼錯誤而產生亂碼。但是有的時候我們會發現有了這句還是不行,不管 xxx 是哪一種,瀏覽器採用的始終都是一種編碼,這個情況我後面會談到。
請注意, 是屬於 HTML 信息的,僅僅是一個聲明,僅表明服務器已經把 HTML 信息傳到了瀏覽器。
2) header("content-type:text/html; charset=xxx");
這個函數 header() 的作用是把括號裏面的信息發到 http 標頭。如果括號裏面的內容為文中所説那樣,那作用和 標籤基本相同,大家對照第一個看發現字符都差不多的。但是不同的是如果有這段函數,瀏覽器就會永遠採用你所要求的 xxx 編碼,絕對不會不聽話,因此這個函數是很有用的。為什麼會這樣呢?那就得説説 http 標頭和 HTML信息的差別了:
http 標頭是服務器以 http 協議傳送 HTML 信息到瀏覽器前所送出的字串。而 標籤是屬於 HTML 信息的,所以 header() 發送的內容先到達瀏覽器,通俗點就是 header() 的優先級高於 (不知道可不可以這樣講)。假如一個 php 頁面既有header("content-type:text/html;charset=xxx"),又有,瀏覽器就只認前者 http 標頭而不認 meta 了。當然這個函數只能在 php 頁面內使用。
同樣也留有一個問題,為什麼前者就絕對起作用,而後者有時候就不行呢?這就是接下來要談的Apache 的原因了。
3) AddDefaultCharset
Apache 根目錄的 conf 文件夾裏,有整個 Apache 的配置文檔 。
用文本編輯器打開 ,第 708 行(不同版本可能不同)有 AddDefaultCharset xxx,xxx為編碼名稱。這行代碼的意思:設置整個服務器內的`網頁文件 http 標頭裏的字符集為你默認的 xxx字符集。有這行,就相當於給每個文件都加了一行 header("content-type:text/html; charset=xxx")。這下就明白為什麼明明 設置了是 utf-8,可瀏覽器始終採用 gb2312 的原因。
如果網頁裏有 header("content-type:text/html; charset=xxx"),就把默認的字符集改為你設置的字符集,所以這個函數永遠有用。如果把 AddDefaultCharset xxx 前面加個"#",註釋掉這句,而且頁面裏不含 header("content-type…"),那這個時候就輪到 meta 標籤起作用了。
下面列出以上的優先順序:
.. header("content-type:text/html; charset=xxx")
.. AddDefaultCharset xxx
如果你是 web 程序員,建議給你的每個頁面都加個header("content-type:text/html;charset=xxx"),這樣就可以保證它在任何服務器都能正確顯示,可移植性也比較強。
4) 中的 default_charset 配置:
中的 default_charset = "gb2312" 定義了 php 的默認語言字符集。一般推薦註釋掉此行,讓瀏覽器根據網頁頭中的 charset 來自動選擇語言而非做一個強制性的規定,這樣就可以在同台服務器上提供多種語言的網頁服務。
-
tp搜索時首頁分頁和搜索頁保持條件分頁的方法
在做搜索查詢時突然發現在首頁用的`分頁代碼在搜索頁使用時出現錯誤,首頁分頁代碼(代碼中標註start與end部分為分頁代碼),下面是由本站小編為大家整理的Thinkphp搜索時首頁分頁和搜索頁保持條件分頁的方法,喜歡的可以收藏一下!瞭解更多詳情資訊,請關注應屆畢業生...
-
用PHP遍歷目錄下的全部文件
項目中有這麼一個需求,需要遍歷某個文件夾(目錄)下的'所有文件。下面是解決這個問題所寫的PHP代碼,歡迎閲讀,更多消息請關注應屆畢業生網。第一種實現辦法是用dir返回對象,第二種實現辦法:用readdir()函數。/**********************一個簡單的目錄遞歸函數第一種實...
-
php中zend相對路徑問題
php下使用zend相對路徑的處理方法。如何使用呢?就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!<?phpdefine('P_S',PATH_SEPARATOR);define('ROOT',"../");set_include_path(ROOT.P_S.'Zend'.P_S_incl...
-
PHP 7.1中都有哪些重大更新
PHP7.1.0帶來了大量的改進和新功能:可空類型返回空類型可迭代的psuedo-type支持常量可見的類數組解構square框架和在list()中允許指定keys多異常類型捕獲,以下是小編為大家搜索整理的PHP7.1中都有哪些重大更新,希望能給大家帶來幫助!更多精彩內容請及時關注我們應...