php下檢測字符串是否是utf8編碼的代碼
更新時(shí)間:2008年06月28日 00:18:48 作者:
給一個(gè)字符串,怎么判斷它是什么編碼呢?php有一個(gè)函數(shù):mb_detect_encoding。不過這個(gè)東西需要有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);
}
準(zhǔn)確率基本和mb_detect_encoding一樣,要對一起對,要錯(cuò)一起錯(cuò)。
編碼檢測不可能100%準(zhǔn)確,這個(gè)東西已經(jīng)可以基本滿足要求了。
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);
}
準(zhǔn)確率基本和mb_detect_encoding一樣,要對一起對,要錯(cuò)一起錯(cuò)。
編碼檢測不可能100%準(zhǔn)確,這個(gè)東西已經(jīng)可以基本滿足要求了。
您可能感興趣的文章:
- php實(shí)現(xiàn)HTML實(shí)體編號(hào)與非ASCII字符串相互轉(zhuǎn)換類實(shí)例
- php實(shí)現(xiàn)圖片轉(zhuǎn)換成ASCII碼的方法
- php小技巧之過濾ascii控制字符
- 淺析PHP的ASCII碼轉(zhuǎn)換類
- PHP詳解ASCII碼對照表與字符轉(zhuǎn)換
- php自動(dòng)獲取字符串編碼函數(shù)mb_detect_encoding
- 解析php獲取字符串的編碼格式的方法(函數(shù))
- PHP安全的URL字符串base64編碼和解碼
- PHP 截取字符串 分別適合GB2312和UTF8編碼情況
- 淺析PHP中的字符串編碼轉(zhuǎn)換(自動(dòng)識(shí)別原編碼)
- php中支持多種編碼的中文字符串截取函數(shù)!
- PHP實(shí)現(xiàn)ASCII碼與字符串相互轉(zhuǎn)換的方法
相關(guān)文章
替換php字符串中的單引號(hào)為雙引號(hào)的方法
下面小編就為大家?guī)硪黄鎿Qphp字符串中的單引號(hào)為雙引號(hào)的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
PHP根據(jù)文章內(nèi)容生成關(guān)鍵詞自動(dòng)化Keywords標(biāo)簽
這篇文章主要為大家介紹了PHP根據(jù)文章內(nèi)容生成關(guān)鍵詞實(shí)現(xiàn)自動(dòng)化Keywords標(biāo)簽實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
php5.3提示Function ereg() is deprecated Error問題解決方法
這篇文章主要介紹了php5.3提示Function ereg() is deprecated Error問題解決方法,主要是由于php5.3對ereg()函數(shù)升級造成的,使用時(shí)只要對其規(guī)則和函數(shù)進(jìn)行簡單的修改即可,需要的朋友可以參考下2014-11-11

