반응형
csv 데이터를 file-saver 패키지로 파일 다운로드 기능을 만들었는데 엑셀에서 열어보니 한글이 깨지는 문제가 있었다.
import { saveAs } from 'file-saver';
const csv = 'csv,데이터,예시';
saveAs(
new Blob([csv], { type: 'text/csv;charset=utf-8' }),
'예제파일.csv'
);
대충 이런 코드로 csv 파일을 생성해서 다운로드하면
요래 한글이 깨진다... 해결법을 찾아보니 엑셀은 bom이 있어야만 utf-8로 인식한다고 한다. ms의 bom 사랑이란... 메모장은 정신 차린 걸로 아는데 다른 프로그램은 멀었나보다.
import { saveAs } from 'file-saver';
const csv = 'csv,데이터,예시';
const BOM = '\uFEFF';
// 한글깨짐 문제를 해결하기 위해 BOM 문자 삽입
saveAs(
new Blob([BOM + csv], { type: 'text/csv;charset=utf-8' }),
'예제파일.csv'
);
아무튼 이렇게 맨 앞에 bom 문자(\uFEFF)를 추가하면 해결된다.
엑셀에서 정상적으로 열리는걸 볼 수 있다.
반응형
'프로그래밍 > 웹' 카테고리의 다른 글
[Node.js] yarn upgrade를 해도 package.json가 그대로 일 때 (0) | 2022.03.19 |
---|---|
토큰은 어디에 저장해야 하는가? (0) | 2022.02.14 |
[자작] parcel-transformer-interpolate-html (0) | 2022.01.14 |
[자작] snowpack-plugin-sitemap (0) | 2021.12.25 |
[Node.js] 외부 프로그램 실행하고 결과 출력하기 (0) | 2021.07.30 |
[CSS] 모바일 밑으로 당겨서 새로고침 막기 (0) | 2021.07.09 |
[자작] 광운대 공지사항 RSS (2) | 2021.04.17 |
[jQuery] serializeObject (0) | 2021.02.20 |