• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    해결됨

csv 포맷의 한글 깨짐 현상

19.08.11 13:10 작성 조회수 360

1

강의를 쉽게 잘 설명해 주셔서 잘 듣고 있습니다.

맥에서 강의를 듣고 있습니다.

크롤러를 실행해서 csv파일을 만들었는데, 일반 텍스트에디터나, Sublime Text에서 

파일을 열었을 때는 정상적으로 나오는데 엑셀로 열 경우에 한글이 깨져서 나타납니다.

settings.py에서 FEED_EXPORT_ENCODING='utf-8'로 했구요.

그래서 혹시나 해서 'utf-8-sig'로 변경했더니 정상적으로 나옵니다.

utf-8 with BOM의 경우 파일의 앞 부분에 특수문자가 삽입되는 걸로 알고 있는데요.

uft-8-sig 로 만든 텍스트 파일이 utf-8로 생성된 파일과 다른 점,

그리고, 향후에 프로그램으로 읽어들여 처리하는 과정에서 문제가 될 소지는 없는지요?

 

감사합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요. 사실 저조차도 크롤링 데이터는 항상 데이터베이스에 저장하곤 하기 때문에, 엑셀에서 사용한 적이 없어서요.

settings.py에서 FEED_EXPORT_ENCODING='utf-8' 으로 설정시, 엑셀 프로그램에서 한글이 깨지는 점을 인지하지 못했습니다.

utf-8 이 표준이긴 한데, MS사에서 utf-8의 다양한 버전을 체크하기 위해, 파일 최상단에 특정한 데이터(Byte Order Mark, BOM)를 붙입니다. utf-8-sig 는 utf-8 with signature 의 약자로 보시면 되구요. 상단에 0xef0xbb0xbf 데이터를 붙입니다. 이 signature를 기반으로 엑셀 프로그램이 유니코드를 적절히 변환해서 화면에 표시하는데요. utf-8 으로 설정하면 signature 가 없기 때문에 유니코드를 적절히 인지하지 못해서, 엑셀 프로그램에서 한글이 깨지는 것입니다.

엑셀 프로그램이 바뀔 것 같지는 않지만, 일반적인 표준을 지원하는 프로그램들은 특별한 이슈는 없긴 합니다. 

가볍게 utf-8을 기본으로 사용하되 엑셀 프로그램을 사용해야 한다든지, 혹시라도 특별한 프로그램에서 데이터를 활용해야 하는데,한글이 깨질 경우만 utf-8-sig 로 설정을 변경해서 활용해보시는 것이 더 좋을 것 같습니다.

감사합니다.