欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-15 23:30:02
 function is_utf8($string) {      return ...
 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%准确,这个东西已经可以基本满足要求了。