5 ways to detect whether a string encoding is UTF8 in PHP
Release: 2016-07-25 08:57:45
Original
2366 people have browsed it
-
- function mb_is_utf8($string)
- {
- return mb_detect_encoding($string, 'UTF-8') === 'UTF-8';//新发现
- }
复制代码
方法二:
-
- function preg_is_utf8($string)
- {
- return preg_match('/^.*$/u', $string) > 0;//preg_match('/^./u', $string)
- }
复制代码
方法三:
-
- function is_utf8_1($str)
- {
- $c=0; $b=0;
- $bits=0;
- $len=strlen($str);
- for($i=0; $i<$len; $i++){
- $c=ord($str[$i]);
- if($c > 128){ // bbs.it-home.org
- if(($c >= 254)) return false;
- elseif($c >= 252) $bits=6;
- elseif($c >= 248) $bits=5;
- elseif($c >= 240) $bits=4;
- elseif($c >= 224) $bits=3;
- elseif($c >= 192) $bits=2;
- else return false;
- if(($i+$bits) > $len) return false;
- while($bits > 1){
- $i++;
- $b=ord($str[$i]);
- if($b < 128 || $b > 191) return false;
- $bits--;
- }
- }
- }
- return true;
- }
复制代码
方法四:
-
- function is_utf8_2($string) {
-
- // From http://w3.org/International/questions/qa-forms-utf-8.html
- return preg_match('%^(?:
- [x09x0Ax0Dx20-x7E] # ASCII
- | [xC2-xDF][x80-xBF] # non-overlong 2-byte
- | xE0[xA0-xBF][x80-xBF] # excluding overlongs
- | [xE1-xECxEExEF][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
复制代码
方法五:
-
- function isUTF8($string)
- {
- return (utf8_encode(utf8_decode($string)) == $string);
- }
复制代码
|
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31