PHP mb_convert_encoding 獲取字符串編碼類型實現(xiàn)代碼
更新時間:2009年04月26日 01:03:59 作者:
mb_convert_encoding函數(shù)就是那個可以自動識別原字符串編碼的函數(shù),但在使用中,發(fā)現(xiàn)GBK中的某些漢字被它轉(zhuǎn)成了亂碼。
后來又在手冊上找到了is_utf8函數(shù),這樣,再結(jié)合iconv函數(shù),我的問題就解決了。下面帖出這個函數(shù):
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);
} // function is_utf8
如果想深入研究,建議看下PHP手冊上的“Multibyte String Functions”這一部分的內(nèi)容。
復(fù)制代碼 代碼如下:
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);
} // function is_utf8
如果想深入研究,建議看下PHP手冊上的“Multibyte String Functions”這一部分的內(nèi)容。
相關(guān)文章
淺析php如何實現(xiàn)爬取數(shù)據(jù)原理
在本篇文章中,小編給大家分享了關(guān)于php如何實現(xiàn)爬取數(shù)據(jù)的原理知識點,有興趣的朋友們參考下。2018-09-09利用Memcached在php下實現(xiàn)session機(jī)制 替換PHP的原生session支持
利用Memcached在php下實現(xiàn)session機(jī)制,替換PHP的原生session支持2010-08-08Laravel模板引擎Blade中section的一些標(biāo)簽的區(qū)別介紹
這篇文章主要介紹了Laravel模板引擎Blade中section的一些標(biāo)簽的區(qū)別介紹,本文講解了@yield 與 @section、@show 與 @stop、@append 和 @override的區(qū)別,需要的朋友可以參考下2015-02-02