-
- FunctionMB_IS_UTF8($ STRING)
- {
-
- mb_detect_encoding($ string、 'utf-8')=== 'utf-8'; //新新}二:
function preg_is_utf8($string) { return preg_match('/^.*$/u', $string) > 0;//preg_match('/^./u', $string)
関数 is_utf8_1($str) { $c=0; $b=0; $ビット=0; $len=strlen($str); - for($i=0; $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;
- それ以外の場合は false を返します。
- if(($i+$bits) > $len) false を返します。
- while($bits > 1){
- $i++;
- $b=ord($str[$i]);
- if($b 191) false を返します。
- $bits--;
- }
- }
- }
- true を返します。
- }
-
-
- 复制代
-
-
- 方法四:
function is_utf8_2($string) { // http://w3.org/International/questions/qa-forms-utf-8.html より return preg_match('%^(?: [x09x0Ax0Dx20-x7E] # ASCII - | [xC2-xDF][x80-xBF] # 過長でない 2 バイト
- | [xE1-xECxEExEF] x80-xBF]{2} # ストレート 3 バイト
- | xED[x80-x9F][x80-xBF] # サロゲートを除く
- xF0[x90-xBF][x80-xBF]{2} # プレーン 1 ~ 3
- | | [xF1-xF3][x80-xBF]{3} # プレーン 4 ~ 15
- xF4[x80-x8F][x80-xBF]{2} # プレーン 16
- )*$%xs', $string);
-
- } // function is_utf8
-
-
- 复制代コード
-
-
- 方法五:
-
関数 isUTF8($string) { return (utf8_encode(utf8_decode($string)) == $string);
|