
온라인에서 데이터를 csv 파일로 다운로드하면 한글이 깨져서 보이는 경우가 있습니다. 메모장으로 열어서 EUC-KR로 변경해서 저장한 뒤 엑셀로 여는 방법도 있는데 일일이 바꿔서 여는 게 번거롭습니다. 한글이 깨지지 않고 CSV 파일을 다운로드할 수 있도록 다음 코드를 추가하면 해결할 수 있습니다.
1) 문자 집합을 UTF-8로 설정합니다.
header('Content-type: text/csv; charset=utf-8');
2) 헤더 아래 에코 “\xEF\xBB\xBF”; 줄을 추가합니다(Entian이라고 함).
echo "\xEF\xBB\xBF";
* 참고: \xEF\xBB\xBF 이 문자는 16진수 형식의 UTF-8을 나타냅니다.

적용 예
header('Content-Encoding: utf-8');
header('Content-type: text/csv; charset=utf-8'); //추가
header('Content-Disposition: attachment;filename="'.$filename.'"');
echo "\xEF\xBB\xBF"; //추가
그렇게 하면 깨진 한글도 잘 다운로드 됩니다!