개발/php
[php] iconv 함수 문자 인코딩 / 한글 깨짐 현상 해결
HHHONG
2023. 2. 24. 16:54
반응형
서로 다른 곳에 있는 데이터를 가져오는 경우 캐릭터셋이 맞지 않으면 아래처럼 문자가 깨져보이게 된다.
이 경우에는 아래처럼 iconv 함수를 사용하여 문자 인코딩을 해주면 된다.
iconv함수
iconv(기존 Charset, 변환할 Charset, 문자열);
나의 경우에는 웹 DB(UTF-8)에 있는 데이터를 엑셀로 출력하는 코드를 만들고 있었는데 한글문자열 부분만 아래처럼 변경해주면된다. 문자열을 UTF-8에서 UHC로 변경해주는 함수이다.
iconv('UTF-8', 'UHC', 문자열);
UHC란?
UHC(또다른 이름으로는 CP949)는 확장완성형 (Unified Hangul Codeset)의 줄임말인데, EUC-KR에서 표현하지 못한 글자까지 인코딩의 영역을 확장한 캐릭터셋이라고 한다. EUC-KR의 경우 2,350자 외의 한글 문자는 모두 생략해버리는 문제가 있다고 하니 EUC-KR대신 UHC를 사용하는게 인코딩의 범위를 더욱 넓고 안전할 수 있다.
iconv_euckr함수
UTF-8을 EUC-KR로 변환하는 경우 아래처럼 쓸 수 있는데
iconv('UTF-8', 'EUC-KR', 문자열);
iconv_euckr 함수를 쓰면 변환전 캐릭터셋이 무엇이었든 곧바로 euc-kr로 변환이 가능하다.
iconv_euckr(문자열);
iconv_uhc는 없네....
반응형