BOARD

자료·레퍼런스

PHP 문자 인코딩 변환 함수 iconv와 mbconvertencoding 사용법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 30회 작성일 26-09-15 07:11

본문

PHP 문자 인코딩 변환 함수 iconv와 mbconvertencoding 사용법

그누보드 운영 시 발생할 수 있는 EUC-KR과 UTF-8 간의 문자 인코딩 문제를 해결하기 위해 iconv와 mbconvertencoding 함수의 사용법과 자동 변환 유틸리티 함수 구현 방법을 알아봅니다.

iconv 함수 사용법과 지원 모듈 및 옵션

iconv 함수는 PHP 환경에서 문자열 인코딩을 변환할 때 사용하는 대표적인 함수로, php_iconv.dll 모듈을 기반으로 동작합니다. 원래 인코딩에서 출력 인코딩으로 문자열을 변환하며 기본 사용 형태는 다음과 같습니다.

iconv("EUC-KR", "UTF-8", $text)

변환 불가 문자 처리 옵션

출력 인코딩을 지정할 때 변환할 수 없는 문자가 포함되어 있는 경우에 대비해 두 가지 주요 옵션을 함께 사용할 수 있습니다.

  • TRANSLIT: 변환할 수 없는 문자를 유사한 형태의 문자로 대체합니다. 예를 들어 유로 기호 '€'를 'EUR'로 바꿉니다.
  • IGNORE: 변환할 수 없는 문자를 무시하고 빈 문자열로 처리합니다.

옵션을 지정하지 않은 상태에서 변환할 수 없는 문자가 포함된 경우, PHP 5.4.0 이후 버전부터는 잘못된 문자에 대해 FALSE를 반환하거나 경고가 발생할 수 있습니다.

mbconvertencoding 함수 사용법과 모듈

mb_convert_encoding 함수는 php_mbstring.dll 모듈을 사용하여 문자 인코딩을 변환합니다.

인수 전달 순서

함수를 호출할 때는 변환할 문자열, 출력 인코딩, 입력 인코딩 순서로 인수를 전달하여 변환을 수행합니다.

mb_convert_encoding($text, "UTF-8", "EUC-KR")

mbdetectencoding과 iconv를 활용한 문자열 자동 변환 함수 구현

입력 문자열의 인코딩이 일정하지 않을 때 mb_detect_encoding 함수로 인코딩을 감지하고, iconv 함수를 조합하여 EUC-KR과 UTF-8 간의 상호 변환을 수행하는 유틸리티 함수를 구성할 수 있습니다. 단, mb_detect_encoding은 문자열의 패턴에 따라 인코딩을 추측하므로 정확도가 100%가 아닐 수 있습니다. 보다 엄격한 감지를 위해 세 번째 인자에 true를 전달하여 strict 모드를 사용하는 것을 권장합니다.

function convStr($str) {
    $dect_str = mb_detect_encoding($str, "UTF-8, EUC-KR");
    if ($dect_str != "EUC-KR") {
        $conv_result = iconv("UTF-8", "EUC-KR", $str);
    } else {
        $conv_result = iconv("EUC-KR", "UTF-8", $str);
    }
    return $conv_result;
}

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.