해결된 질문
작성
·
548
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 의 약자로 보시면 되구요. 상단에 0xef
, 0xbb
, 0xbf
데이터를 붙입니다. 이 signature를 기반으로 엑셀 프로그램이 유니코드를 적절히 변환해서 화면에 표시하는데요. utf-8 으로 설정하면 signature 가 없기 때문에 유니코드를 적절히 인지하지 못해서, 엑셀 프로그램에서 한글이 깨지는 것입니다.
엑셀 프로그램이 바뀔 것 같지는 않지만, 일반적인 표준을 지원하는 프로그램들은 특별한 이슈는 없긴 합니다.
가볍게 utf-8을 기본으로 사용하되 엑셀 프로그램을 사용해야 한다든지, 혹시라도 특별한 프로그램에서 데이터를 활용해야 하는데,한글이 깨질 경우만 utf-8-sig 로 설정을 변경해서 활용해보시는 것이 더 좋을 것 같습니다.
감사합니다.