您好,登錄后才能下訂單哦!
小編給大家分享一下PHP自動判斷字符集并轉碼的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
原理很簡單,因為gb2312/gbk是中文兩字節,這兩個字節是有取值范圍的,而utf-8中漢字是三字節,同樣每個字節也有取值范圍。而英文不 管在何種編碼情況下,都是小于128,只占用一個字節(全角除外)。
如果是文件形式的編碼檢查,還可以直接check utf-8的BOM信息。話不多說,直接上函數,這個函數是用來對字符串進行檢查和轉碼的。
<?php function safeEncoding($string,$outEncoding ='UTF-8') { $encoding = "UTF-8"; for($i=0;$i<strlen($string);$i++) { if(ord($string{$i})<128) continue; if((ord($string{$i})&224)==224) { //第一個字節判斷通過 $char = $string{++$i}; if((ord($char)&128)==128) { //第二個字節判斷通過 $char = $string{++$i}; if((ord($char)&128)==128) { $encoding = "UTF-8"; break; } } } if((ord($string{$i})&192)==192) { //第一個字節判斷通過 $char = $string{++$i}; if((ord($char)&128)==128) { // 第二個字節判斷通過 $encoding = "GB2312"; break; } } } if(strtoupper($encoding) == strtoupper($outEncoding)) return $string; else return iconv($encoding,$outEncoding,$string); } ?>
以上是“PHP自動判斷字符集并轉碼的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。