遇到一个问题,就是在 迅雷下载地址解码的过程中,发现有部分地址采用的格式是UTF8的,因此就有如此一问题,在网上找了很长时间,终于发现了一个可以解决问题的函数,共享一下。
<?
function is_utf8($str){ //是UTF8,则回穿1。不是,回传0
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', $str);
}
?>