현재 위치: > 최신 기사 목록> 문자열이 mb_get_info를 통해 인코딩하는지 여부를 결정하는 방법

문자열이 mb_get_info를 통해 인코딩하는지 여부를 결정하는 방법

gitbox 2025-05-29

PHP를 사용하여 문자열로 작업 할 때는 문자열이 올바른 인코딩 형식, 특히 다국어 컨텐츠와 관련된 시나리오에 있는지 확인하는 것이 중요합니다. UTF-8은 현재 가장 인기있는 캐릭터 인코딩 중 하나이며 세계에서 대부분의 언어를 지원합니다. 이 기사는 문자열이 다른 MBString 확장 기능과 결합 된 MB_GET_INFO 함수를 통해 UTF-8 인코딩인지 결정하는 방법을 소개합니다.

mb_get_info 함수를 이해하십시오

우선, MB_GET_INFO () 자체는 현재 내부 인코딩, 감지 순서 등과 같은 MBString Extension의 구성 정보를 얻는 데 사용됩니다. 문자열 인코딩을 직접 감지하지는 않지만 현재 환경이 UTF-8을 감지하도록 구성되어 있는지 여부를 알려줍니다.
일반적으로 mb_detect_encoding () 함수를 결합하여 인코딩 감지를 구현합니다.

현재 MBString 구성을 보려면 다음과 같이 쓸 수 있습니다.

 <?php
// 확인하다 mbstring 현재 구성
print_r(mb_get_info());
?>

출력 정보에는 다음이 포함됩니다.

  • 내부_encoding

  • http_input

  • http_output

  • 언어

  • encoding_translation

  • detect_order

  • 대체 _character 등.

Detect_orderUTF-8이 포함 된 경우 MB_DETECT_ENCODING ()을 사용하여 문자열이 UTF-8인지 감지 할 수 있습니다.

문자열이 UTF-8인지 확인하십시오

MB_DETECT_ENCODING () 함수와 결합하여 다음과 같은 방식으로 판단 할 수 있습니다.

 <?php
function is_utf8($string) {
    // 필요한 경우,먼저 보장 할 수 있습니다 detect_order 포함 UTF-8
    $info = mb_get_info();
    if (strpos($info['detect_order'], 'UTF-8') === false) {
        // 감지 순서를 수동으로 설정하십시오
        mb_detect_order(['UTF-8', 'ISO-8859-1', 'ASCII']);
    }

    // 사용 mb_detect_encoding 테스트하러 오세요
    return mb_detect_encoding($string, 'UTF-8', true) === 'UTF-8';
}

// 예
$text = "이것은 테스트입니다";

if (is_utf8($text)) {
    echo "문자열입니다 UTF-8 코딩";
} else {
    echo "문자열은 아닙니다 UTF-8 코딩";
}
?>

이 코드 설명 :

  • 먼저 mb_get_info () 를 통해 현재 문자 감지 순서를 확인하십시오.

  • UTF-8이 없는 경우 mb_detect_order ()를 사용하여 일시적으로 조정하십시오.

  • mb_detect_encoding ()을 사용하고 세 번째 매개 변수를 전달 하여 엄격한 감지를 나타냅니다.

  • 마지막으로, 반환 결과가 'UTF-8' 인지 확인하십시오.

작은 세부 사항에주의하십시오

  • PHP에 MBString 확장이 설치되고 활성화되어 있는지 확인하십시오.

  • mb_detect_encoding ()은 특히 짧은 문자열이나 순수한 영어 문자열에서 100% 정확하지 않지만 일반적인 응용 프로그램에 충분히 신뢰할 수 있습니다.

  • 응용 프로그램이 인코딩 문제를 많이 다루는 경우 입력 및 출력의 인코딩 형식을 통합하고 MB_Internal_encoding ( 'UTF-8') 을 통해 내부 인코딩을 명시 적으로 설정하는 것이 좋습니다.

샘플 프로젝트 호스팅 주소

전체 예를 보려면 https://gitbox.net/php/utf8-check-demo를 방문하십시오.