今天在網上看到一個人的對於php開發中字符編碼的總結,感覺不錯,摘錄如下:
一,php編碼轉換
1.通過iconv()函數實現編碼轉換
語法:iconv(string in_charset,string out_charset,string str)
將指定字符串str由in_charset編碼格式轉換成out_charset編碼格式,返回bool值。
2.通過mb_convert_encoding()函數實現編碼轉換
語法:mb_convert_encoding(string str,string to_encoding[,mixed from_encoding])
將字符串str的編碼由from_encoding轉換為to_encoding。
二,檢測php字符串的編碼
通過mb_detect_encoding()函數來檢測字符串使用的是何種字符編碼。
三,字符編碼優先級
由高--->低
1.http消息報頭的Content-Type字段中的charset參數。
2.通過meta元素聲明,將http-equiv設置成Content-Type。
3.一些元素的charset屬性設置。
四,解決頁面中的php亂碼問題
數據庫中數據的輸入和輸出產生的亂碼,可以通過PHP的mysql_query()函數設置來解決,而頁面中如果出現亂碼,則可以使用下面的兩種方法解決。
(1)使用meta標簽設置頁面編碼
meta標簽的作用是聲明客戶端的瀏覽器用什么字符編碼顯示該頁面。
(2)通過header()函數設置頁面的編碼格式
header("content-type;text/html;charset=gb2312");
1.通過iconv()函數實現編碼轉換
語法:iconv(string in_charset,string out_charset,string str)
將指定字符串str由in_charset編碼格式轉換成out_charset編碼格式,返回bool值。
2.通過mb_convert_encoding()函數實現編碼轉換
語法:mb_convert_encoding(string str,string to_encoding[,mixed from_encoding])
將字符串str的編碼由from_encoding轉換為to_encoding。
二,檢測php字符串的編碼
通過mb_detect_encoding()函數來檢測字符串使用的是何種字符編碼。
三,字符編碼優先級
由高--->低
1.http消息報頭的Content-Type字段中的charset參數。
2.通過meta元素聲明,將http-equiv設置成Content-Type。
3.一些元素的charset屬性設置。
四,解決頁面中的php亂碼問題
數據庫中數據的輸入和輸出產生的亂碼,可以通過PHP的mysql_query()函數設置來解決,而頁面中如果出現亂碼,則可以使用下面的兩種方法解決。
(1)使用meta標簽設置頁面編碼
meta標簽的作用是聲明客戶端的瀏覽器用什么字符編碼顯示該頁面。
(2)通過header()函數設置頁面的編碼格式
header("content-type;text/html;charset=gb2312");
header()函數的作用是把括號內的信息發到HTTP標頭。
五、如果瀏覽器不能選擇你在頁面中默認的字符編碼來顯示頁面
可以設置php中的php.ini文件中的default_charset = "編碼", 例如:default_charset = "gb2312"
這里決定了瀏覽器選擇的默認編碼。