PHP開發中的亂碼問題

2021-06-29 16:37:14 字數 1452 閱讀 1762

1、解決頁面中的亂碼問題

兩種方法:

(1) 使用meta標籤設定頁面編碼

meta標籤的作用是宣告客戶端的瀏覽器用什麼字符集編碼顯示該頁面,其中charset可以設定為gb2312、gbk、utf-8等。大部分的頁面都是通過這種方式來告訴瀏覽器顯示這個頁面時採用什麼編碼。

(2)通過header()函式設定頁面的編碼格式

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

header()函式的作用是把括號內的資訊傳送到http標頭。通過header()函式設定charset的值來指定頁面的編碼格式,其作用與meta標籤是相同的。但不同之處是,如果同時使用header()函式和meta標籤來設定頁面的編碼格式,瀏覽器會採用header()函式指定的編碼格式,而不會使用meta標籤設定的編碼格式,這就是header()函式的特殊之處。header()函式多數應用在純php的檔案中,通過它來設定檔案的編碼格式。

2、資料庫中的字符集編碼問題

通過php運算元據庫中的資料時,如果網頁中使用的是utf-8編碼,那麼就可以在連線資料庫的檔案中執行mysql_query("set namesutf8")這個語句,指定資料庫的編碼為utf8,這樣在讀取出的中文資料就不會出現亂碼的問題。也就是說,保證頁面編碼格式與資料庫中輸出資料的編碼格式一致就不會出現亂碼的問題。同樣在向資料庫中新增資料時,也要保證編碼格式的統一。

3、避免擷取中文字串時出現亂碼

推薦mb_substr()函式,通過它對中文字串進行擷取,就可以避免在擷取中文字串時出現亂碼。

string mb_substr(string str, int start [, int length [, string encoding]])

//start: 指定擷取的開始位置,從0開始計算。

//length: 擷取字串的長度。

//encoding: 設定返回字串的編碼格式

mb_substr()函式擷取字串時,乙個英文本串即為乙個位元組,而乙個中文漢字同樣也定義為乙個位元組。

mb_strlen

— 獲取字串的長度

mixed

mb_strlen( string$str[, string$encoding= mb_internal_encoding()

] )返回具有encoding編碼的字串

str包含的字元數。 多位元組的字元被計為 1。

如果給定的encoding無效則返回false



php中的亂碼問題

亂碼不外呼就三種情況 1 是由編碼引起的亂碼,解決方法 修改編碼就是了 2 是由解碼引起的亂碼 比如原來別人用的是gbk,而你的客戶端軟體用的是解碼軟體是gb2312的。那麼可能就會引起亂碼了 3 是由作業系統引起的。這個好解決,修改一下電腦的區域設定那裡就可以了 最近在弄php,見同事遇幾次亂碼問...

Tomcat JSP Web 開發中的亂碼問題小節

1.靜態頁面的亂碼問題 檔案的編碼和瀏覽器要顯示的編碼不一致。1 檢查檔案原始的編碼,可以用記事本開啟,然後選擇另存為來看 2 給當前頁面加入乙個指令來建議瀏覽器用指定的編碼來顯示檔案字元內容.3 如果系統是英文xp,沒裝東亞字符集支援,也會顯示亂碼.2.jsp 頁面的亂碼問題 1 page 指令有...

IOS開發中的亂碼問題

做ios應用程式,遇到中文,通常要處理亂碼問題。遠端的web伺服器通常時支援中文的,使用的編碼一般為gbk,而ios中處理通常使用的編碼為utf8,所以ios中的亂碼問題中主要是將gbk編碼轉為utf8編碼。以下是經過測試的轉換方法 nsstringencoding encoding cfstrin...