이 기사의 예는 문자열이 UTF8로 인코딩되었는지 여부를 감지하는 PHP의 일반적인 방법을 요약합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.
ord를 사용하여 문자의 기반을 얻은 후 판단을 입력하거나 mb_Detect_encoding 함수를 사용하여 처리하는 등 문자열 인코딩을 감지하는 방법은 여러 가지가 있습니다. 참고할 수 있는 일반적인 방법은 다음과 같습니다.
예시 1
/**
* 문자열이 UTF8로 인코딩되었는지 확인하세요
* @param string $str 감지된 문자열
* @return 부울
*/
함수 is_utf8($str){
$len = strlen($str);
for($i = 0; $i
$c = ord($str[$i]);
if ($c > 128) {
if (($c > 247)) false를 반환;
elseif ($c > 239) $bytes = 4;
elseif ($c > 223) $bytes = 3;
elseif ($c > 191) $bytes = 2;
그렇지 않으면 false를 반환합니다.
if (($i $bytes) > $len) return false;
while ($bytes > 1) {
$i ;
$b = ord($str[$i]);
if ($b < 128 || $b > 191) return false;
$바이트--;
}
}
}
true를 반환합니다.
}
예시 2
function is_utf8($string) {
preg_match('%^(?:
반환
>
| [xC2-xDF][x80-xBF] [xC2-xDF][x80-xBF] # 너무 길지 않은 2바이트
~
| [xE1-xECxEExEF][x80-xBF]{2} # 직선 3바이트
~
~
~
~
)*$%xs', $string);
}
정확도는 기본적으로 mb_Detect_encoding()과 동일하며 맞기도 하고 틀리기도 합니다.
코딩 감지는 100% 정확할 수 없으며 이는 기본적으로 요구 사항을 충족할 수 있습니다.
예시 3
코드 복사
코드는 다음과 같습니다.
예시 4
코드 복사
코드는 다음과 같습니다.
사실을 반환합니다.
}
그렇지 않으면
{
거짓을 반환
}
} // 함수 is_utf8
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.