php下检测字符串是否是utf8编码的代码

2018-09-21 16:43

阅读:453

  functionis_utf8($string){
returnpreg_match(%^(?:
[\x09\x0A\x0D\x20-\x7E]#ASCII
[\xC2-\xDF][\x80-\xBF]#non-overlong2-byte
\xE0[\xA0-\xBF][\x80-\xBF]#excludingoverlongs
[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}#straight3-byte
\xED[\x80-\x9F][\x80-\xBF]#excludingsurrogates
\xF0[\x90-\xBF][\x80-\xBF]{2}#planes1-3
[\xF1-\xF3][\x80-\xBF]{3}#planes4-15
\xF4[\x80-\x8F][\x80-\xBF]{2}#plane16
)*$%xs,$string);
}
准确率基本和mb_detect_encoding一样,要对一起对,要错一起错。
编码检测不可能100%准确,这个东西已经可以基本满足要求了。


评论


亲,登录后才可以留言!