程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php下檢測字符串是否是utf8編碼的代碼的方法

php下檢測字符串是否是utf8編碼的代碼的方法

編輯:PHP綜合
給一個字符串,怎麼判斷它是什麼編碼呢?

php有一個函數:mb_detect_encoding。

不過這個東西需要有mb_string庫,不是到處都能用的。

function is_utf8($string) {
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs', $string);
}


准確率基本和mb_detect_encoding一樣,要對一起對,要錯一起錯。
編碼檢測不可能100%准確,這個東西已經可以基本滿足要求了。 *
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved