PHP 检测字符串的编码是否是UTF-8编码的函数 check_utf8() 准确率最高的!

来源:互联网 发布:恶搞小视频制作软件 编辑:程序博客网 时间:2024/06/11 06:44

找了一下还以为真的没有,然后自己用 网上说的那种 mb_detect_encoding(),很多是通过了,但是还是有几个测试根本就无法判断成功。

后来我自己终于在官网给出的里面找到了一个函数 check_utf8()。现在备份保留下,希望对大家有帮助。




  function check_utf8($str)  {      $len = strlen($str);      for($i = 0; $i < $len; $i++){          $c = ord($str[$i]);          if ($c > 128) {              if (($c > 247)) return false;              elseif ($c > 239) $bytes = 4;              elseif ($c > 223) $bytes = 3;              elseif ($c > 191) $bytes = 2;              else return false;              if (($i + $bytes) > $len) return false;              while ($bytes > 1) {                  $i++;                  $b = ord($str[$i]);                  if ($b < 128 || $b > 191) return false;                  $bytes--;              }          }      }      return true;  } // end of check_utf8


PS:结尾的时候穿插一个事情。网上其实流传最广的应该是这个:


实在是有点让人受不了了!互联网真的是个垃圾场所啊,一个完全写错了的代码却被转载的次数最多,为什么?

因为中国的那些中文网站大部分都是采集站,自动采集然后发布。

真的害怕有一天,错误说的太多了居然可以成为真理,那这可怕。