본문 바로가기
개발 관련

php csv 다운로드 시 한글 깨짐

by 조이플워니 2018. 6. 18.

php 에서 한글 깨짐이라고 검색하면 죄다... 제목 깨지는 것만 나오는데...

나 같이 내용이 깨지는거에 대한 내용이 별로 없어서... 남긴다 ㅎ


나같은 경우는 UTF-8 인 MySQL 에서 CI force_download 를 써서 다운로드 하는 방법으로 개발했는데..


파일 다운로드를 하면 editer 에서는 잘 열리나, 엑셀로 열면 다 깨지고 난리가 난다...

(엑셀 ㄱㄱㄲ)


암튼.. 그래서 방법을 찾던 중 csv 다운로드 시 header 에 UTF-8 선언을 해주고... 

--> header('Content-Type:text/csv;charset=UTF-8;');


출력(데이터 쓰기) 직전에 UTF-8 BOM(Byte Order Mark) 을 넣어주면 된다.

--------------------------------------------------------------------------------------------

// Generate the server headers

header('Content-Type: '.$mime.';charset=UTF-8;');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Expires: 0');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.$filesize);
header('Cache-Control: private, no-transform, no-store, must-revalidate');
  
echo "\xEF\xBB\xBF"; // 얠 넣어줘야 안깨짐...

--------------------------------------------------------------------------------------------

참고 : http://ko.wikipedia.org/wiki/바이트_순서_표식


'개발 관련' 카테고리의 다른 글

URL 인코딩 표  (0) 2019.02.19
mysql 데이터 파일 저장 위치 바꾸기  (1) 2019.02.14
php (mobile) - input image  (0) 2017.02.06
정규식 !!! 이렇게 좋은것이었다니...  (0) 2016.10.07
web 과 was 의 차이점...  (0) 2016.09.19

댓글