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;
}
참고자료
기타 참고자료
- 이전글PHP 문자열 분리 및 배열 변환 방법 (explode와 list 함수 활용) 26.09.15
- 다음글PHP mysql 함수에서 mysqli로의 마이그레이션 및 CRUD 구현 가이드 26.09.15
댓글목록
등록된 댓글이 없습니다.