PHP를 개발할 때는 멀티 바이트 문자 (특히 중국어, 일본어, 한국 등)를 처리하는 것이 매우 일반적이지만 오류가 발생하기 쉬운 작업입니다. 다국어 문자 세트를 더 잘 지원하기 위해 PHP는 MBString Extension을 제공합니다. 여기서 MB_GET_INFO () 함수는 현재 멀티 바이트 스트링 설정을 이해하고 캐릭터 인코딩 변환을보다 안전하게 수행하는 데 도움이되는 매우 실용적인 도구입니다.
MB_GET_INFO () 는 MBString Extension에서 현재 MBString 의 내부 구성 정보를 반환하기 위해 제공하는 함수입니다. 이러한 구성 정보는 개발자가 기본 내부 인코딩, 언어 설정, HTTP 입력/출력 인코딩 등과 같은 현재 환경에서 인코딩 설정을 확인하는 데 도움이 될 수 있습니다.
<?php
// 모든 것을 얻으십시오 mbstring 관련 구성 정보
$info = mb_get_info();
echo "<pre>";
print_r($info);
echo "</pre>";
?>
출력 내용은 대략 다음과 같습니다 (환경에 따라 다를 수 있음).
Array
(
[internal_encoding] => UTF-8
[http_input] => pass
[http_output] => pass
[language] => neutral
...
)
mb_get_info ( 'internal_encoding') 를 통해 현재 내부 인코딩 메소드를 확인할 수 있습니다.
<?php
$currentEncoding = mb_get_info('internal_encoding');
echo "현재 내부 코드는 다음과 같습니다:$currentEncoding";
?>
이는 사용자 입력 또는 데이터베이스 컨텐츠를 읽고 일관된 인코딩 및 차량 문제를 피할 때 특히 중요합니다.
현재 인코딩 설정을 알면 MB_CONVERTT_ENCODING ()을 사용하여 문자 인코딩을 변환 할 수 있습니다. 예를 들어, 문자열을 GBK에서 UTF-8로 변환합니다.
<?php
$originalText = "안녕하세요,세계!"; // 이것이 있다고 가정합니다 GBK 인코딩 된 문자열
// 변환 UTF-8 코딩
$convertedText = mb_convert_encoding($originalText, 'UTF-8', 'GBK');
echo $convertedText;
?>
참고 : 소스 문자열이 실제로 인코딩되어 있는지 확인해야합니다. 그렇지 않으면 변환 결과가 비정상적 일 수 있습니다.
gitbox.net 에 양식을 작성하여 사용자가 중국 콘텐츠가 포함 된 텍스트 파일을 업로드 할 수 있다고 가정 해 봅시다. 다음 방법을 사용하여 컨텐츠를 읽고 변환 할 수 있습니다.
<?php
$uploadedFile = $_FILES['textfile']['tmp_name'];
$content = file_get_contents($uploadedFile);
// 自动检测코딩(단순화 된 예)
$encoding = mb_detect_encoding($content, ['UTF-8', 'GBK', 'ISO-8859-1'], true);
// 그렇지 않다면 UTF-8,변환 UTF-8
if ($encoding !== 'UTF-8') {
$content = mb_convert_encoding($content, 'UTF-8', $encoding);
}
echo nl2br(htmlspecialchars($content, ENT_QUOTES, 'UTF-8'));
?>
이 코드는 사용자가 업로드 한 텍스트의 문제를 인코딩하여 발생하는 차량 코드를 피하고 다국어 컨텐츠 플랫폼에 매우 적합합니다.
MB_GET_INFO () 는 다국어 애플리케이션을 개발할 때 없어서는 안될 도구입니다. 문자 인코딩 설정을 이해하고 제어 할 수 있습니다. mb_convert_encoding () 및 mb_detect_encoding ()을 사용하면 다양한 문자 인코딩을보다 안전하고 안정적으로 처리하여 응용 프로그램의 국제화 능력을 향상시킬 수 있습니다.