PHP의 mb_preferred_mime_name() 함수는 지정된 문자 인코딩에 해당하는 MIME(Multipurpose Internet Mail Extensions) 문자셋(charset) 문자열을 반환하는 멀티바이트 문자열 함수입니다. 이메일 헤더나 HTTP 통신에서 올바른 charset 정보를 전달해야 할 때 유용하게 사용됩니다.
문법
string mb_preferred_mime_name(string $encoding)
매개변수
mb_preferred_mime_name() 함수는 하나의 매개변수만 받습니다.
$string_encoding − 확인하고자 하는 문자 인코딩 이름입니다. 예를 들어 "EUC-JP", "UTF-8", "SJIS" 등이 있습니다.
반환 값
mb_preferred_mime_name() 함수는 주어진 인코딩에 대응하는 MIME charset 문자열을 반환합니다. 만약 해당 인코딩에 선호되는 charset이 존재하지 않으면 false를 반환합니다.
예제 1 – 기본 사용법
다음 예제를 통해 이 함수가 실제로 어떻게 동작하는지 살펴보겠습니다.
<?php
// 인코딩 설정
$string_encoding = "EUC-JP";
mb_http_output($string_encoding);
// 출력 제어(output control) 함수 사용
ob_start("mb_output_handler");
header(mb_preferred_mime_name($string_encoding));
print_r($string_encoding);
?>
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
EUC-JP
예제 2 – 여러 인코딩 비교하기
다양한 인코딩에 대해 어떤 MIME charset 이름이 반환되는지 확인할 수도 있습니다.
<?php
$encodings = ["UTF-8", "SJIS", "ISO-2022-JP", "EUC-KR"];
foreach ($encodings as $enc) {
echo $enc . " → " . mb_preferred_mime_name($enc) . " ";
}
?>
출력 결과
UTF-8 → UTF-8
SJIS → Shift_JIS
ISO-2022-JP → ISO-2022-JP
EUC-KR → EUC-KR
이처럼 mb_preferred_mime_name() 함수를 활용하면 내부적으로 사용 중인 인코딩을 표준 MIME charset 명칭으로 변환하여, 메일 발송 시 Content-Type 헤더 작성이나 HTTP 응답 헤더 처리 등에서 정확한 문자셋 정보를 손쉽게 지정할 수 있습니다.