2017년 8월 2일 수요일

자바스크립트에서 csv 파일 생성시 한글 깨짐 문제 해결



var data = "홍길동,1,2,3\r\n홍길동2,1,2,3"
var pom = document.createElement('a');
var blob = new Blob([data], {type: 'text/csv;charset=utf-8;'});
var url = URL.createObjectURL(blob);
     pom.href = url;
     pom.setAttribute('download', '파일다운.csv');
     pom.click();

다운로드 받으려 하니 한글이 깨져 문제에 대해 여러 가지를 찾아보았으나 다 되지 않았다.

모든 형태가 utf-8로 되있었는데 한글이 깨져서 나오는 상황이었고
해결 방법은

var data = "홍길동,1,2,3\r\n홍길동2,1,2,3"
var pom = document.createElement('a');
var blob = new Blob(["\ufeff"+data+], {type: 'text/csv;charset=utf-8;'});
var url = URL.createObjectURL(blob);
     pom.href = url;
     pom.setAttribute('download', '파일다운.csv');
     pom.click();

\ufeff (utf-8 bom 문자열 추가) 하니 깨지지 않음을 확인 할 수 있었습니다.



참고는 https://stackoverflow.com/questions/31959487/utf-8-encoidng-issue-when-exporting-csv-file-javascript

댓글 2개:

  1. 덕분에 해결했어요ㅠㅠ 감사합니다

    답글삭제
  2. 예제 고대로 콘솔에 쳤는데 똑같이 깨지는데...

    답글삭제