문자열이 UTF8 인코딩인지 여부를 감지하는 PHP의 일반적인 방법
May 16, 2016 pm 08:30 PM
php
utf8
끈
발각
코딩
이 기사의 예는 문자열이 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를 반환합니다.
}
* 문자열이 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
preg_match('%^(?:
반환 > | [xC2-xDF][x80-xBF] [xC2-xDF][x80-xBF] # 너무 길지 않은 2바이트
~ | [xE1-xECxEExEF][x80-xBF]{2} # 직선 3바이트
~ ~ ~ ~ )*$%xs', $string); }
정확도는 기본적으로 mb_Detect_encoding()과 동일하며 맞기도 하고 틀리기도 합니다.
코딩 감지는 100% 정확할 수 없으며 이는 기본적으로 요구 사항을 충족할 수 있습니다.
예시 3
코드 복사
코드는 다음과 같습니다.
function mb_is_utf8($string)
{
Return mb_Detect_encoding($string, 'UTF-8') === 'UTF-8';//새로운 발견
}
예시 4
코드는 다음과 같습니다.
// $string이 유효한 UTF-8이면 true를 반환하고 그렇지 않으면 false를 반환합니다. .
함수 is_utf8($word)
{
if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{ 1}[".chr(128)."-".chr(191)."]{1}){1}/",$word) == true || preg_match("/([".chr(228) )."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-". chr(191)."]{1}){1}$/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."] {1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2 ,}/",$word) == 참)
{
사실을 반환합니다.
}
그렇지 않으면
{
거짓을 반환
}
} // 함수 is_utf8
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.
{
거짓을 반환
}
} // 함수 is_utf8
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

인기 기사
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

인기 기사
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7281
9


자바 튜토리얼
1622
14


Cakephp 튜토리얼
1341
46


라라벨 튜토리얼
1258
25


PHP 튜토리얼
1205
29



Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법
