PHP에서 문자열 인코딩이 UTF8인지 확인하는 5가지 방법
풀어 주다: 2016-07-25 08:57:45
-
- 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);
- }
复制代码
|
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
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