반응형
온라인상에서 csv파일로 데이터를 다운받게하면 종종 한글이 깨져보일 때가 있다. 메모장으로 열어서 EUC-KR로 변경한 뒤 저장한다음 엑셀로 여는 방법도 있지만, 일일히 변경해서 열려면 번거롭다. 한글이 깨져보이지 않고 csv 파일을 다운 받을 수 있도록 아래 코드들을 추가하여 해결이 가능하다.
1) charset을 UTF-8로 설정한다.
header('Content-type: text/csv; charset=utf-8');
2) header아래쪽에 echo "\xEF\xBB\xBF"; 한줄(엔티안이라고 부른다고 한다)을 추가한다.
echo "\xEF\xBB\xBF";
* 참고로 \xEF\xBB\xBF 이 문자는 UTF-8을 16진수로 표기한 것인데, 특정 문구를 넣어서 문서가 제대로된 캐릭터셋 값을 가지도록 하는 역할을 한다고 한다.
적용 예시
header('Content-Encoding: utf-8');
header('Content-type: text/csv; charset=utf-8'); //추가
header('Content-Disposition: attachment;filename="'.$filename.'"');
echo "\xEF\xBB\xBF"; //추가
이렇게 넣어주면 깨진 한글도 잘 나오게 다운받아진다!
반응형
'개발 > php' 카테고리의 다른 글
[php] 입력 필드 쪼개기 (체크박스 값 DB 저장) (2) | 2023.10.18 |
---|---|
[그누보드/영카트] 아이코드 SMS 문자 여러명한테 보내기 (2) | 2023.07.17 |
[php] mysql 결과 카운트 / 행 개수 구하기 (2) | 2023.05.25 |
[php] iconv 함수 문자 인코딩 / 한글 깨짐 현상 해결 (2) | 2023.02.24 |
[그누보드] 아이코드 SMS 문자보내기 (2) | 2023.02.02 |
[php] 에러메시지 나타내기 / php 오류 찾기 (3) | 2022.12.19 |
[php] Warning: Illegal string offset 'file' 오류수정 (2) | 2022.11.10 |
[php] PHPExcel 엑셀로 데이터 다운받기 (2) | 2022.11.04 |