반응형
서로 다른 곳에 있는 데이터를 가져오는 경우 캐릭터셋이 맞지 않으면 아래처럼 문자가 깨져보이게 된다.
이 경우에는 아래처럼 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는 없네....
반응형
'개발 > php' 카테고리의 다른 글
[php] Undefined variable, Undefined index 에러 해결 (4) | 2023.11.07 |
---|---|
[php] 입력 필드 쪼개기 (체크박스 값 DB 저장) (2) | 2023.10.18 |
[그누보드/영카트] 아이코드 SMS 문자 여러명한테 보내기 (2) | 2023.07.17 |
[php] mysql 결과 카운트 / 행 개수 구하기 (2) | 2023.05.25 |
[php] csv 파일 다운 한글 깨짐 해결 방법 (2) | 2023.02.17 |
[그누보드] 아이코드 SMS 문자보내기 (2) | 2023.02.02 |
[php] 에러메시지 나타내기 / php 오류 찾기 (3) | 2022.12.19 |
[php] Warning: Illegal string offset 'file' 오류수정 (2) | 2022.11.10 |