Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

tjddndk17

CSV 파일 MS Excel 한글 깨짐 현상 본문

개발

CSV 파일 MS Excel 한글 깨짐 현상

뚜루루또또 2022. 1. 10. 14:38

CSV 파일 다운로드 기능을 만들때 인코딩은 보통 UTF-8로 하기때문에 한글이 깨질거라 생각못했는데 MS Excel에서 열면 한글이 깨지는 현상이 발생했습니다.

 

원인

  • 인코딩과 디코딩의 차이로 인하여
  • Google Sheet, Polaris Office 같은 프로그램은 파일의 인코딩을 자동으로 인식하지만 MS Excel은 자동으로 인식하지 못함

 

해결

MS Excel이 자동으로 인코딩을 인식하지 못하기 때문에 인코딩을 MS Excel에 알려줘야합니다. 이때 사용하는 것이 BOM 입니다.

BOM (Byte Order Mark)
- 번역 그대로 "바이트 순서 표시" 라는 뜻입니다.
- 파일이 시작되는 첫부분에 보이지 않게 2~3바이트의 문자열을 추가합니다
- 보통의 에디터에서는 보이지 않고 "헥스 에디터(Hex Editor)"로 열었을때 보입니다

참고 - 바이트 순서 표식

 

javascript 

// 생성한 CSV 문자열을 Blob 데이터로 생성
// "\ufeff" (BOM) 추가
var blob = new Blob(["\ufeff"+str], {type: "text/csv; charset=utf-8"});
var objURL = window.URL.createObjectURL(blob);

var a = document.createElement('a');
a.download = "다운로드.csv";
a.href = objURL;
a.click();

 

PHP ( Laravel )

// "\xEF\xBB\xBF" (BOM) 추가
echo "\xEF\xBB\xBF";
return response()->stream($callback, 200, $headers);
Comments