은소랜 은퇴 연구소

어제 제 블로그의 제목과 카테고리를 파이썬으로 웹크롤링 (웹 스크래핑)해서 CSV 파일을 만든 다음에 이를 엑셀 파일로 여는 과정에 대해서 설명을 드렸습니다.

 

자세한 내용은 아래 참조하세요.

 

 

그런데 이 과정에서 한 가지 문제를 겪었습니다. 바로 파이썬으로 만든 CSV 파일의 한글이 아래와 같이 깨어져 보이는 것입니다.

어렵게 코딩을 했는데 마지막 단계에서 에러가 발생하니 살짝 화가 나기도 했지만 해결책을 비교적 쉽게 찾을 수 있었습니다.

 


 

■ 최근에 "은퇴 준비"를 주제로 유튜브 채널을 시작했어요.

경험을 통한 유익한 정보를 많이 올려 보도록 할테니 관심 부탁드려요. (좋아요!, 구독!)

https://youtu.be/zNnKMtY8qyk


 

1) 원인

이 문제는 한글을 인코딩하고 디코딩할 때 다른 규격을 적용해서 생기는 문제였습니다.

파이썬으로 CSV 파일을 만들 때는 아래와 같이 "utf-8" 규격으로 인코딩을 했습니다. 

그런데 엑셀에서 CSV 파일을 열 때는 아래와 같이 "949 : 한국어"의 ANSI 코드로 디코딩을 하도록 되어 있는 모양입니다.

그래서 결국 영문과 숫자는 상관없지만 한글은 깨어져 보이게 됩니다.

 

2) 해결 방법

원인으로 보면 2가지 해결책이 있습니다

 

제1의 방법 : "utf-8" 방식으로 되어 있는 CSV 파일을 어떤 중계 수단을 이용해서 "ANSI" 포맷으로 바꾸어 저장하고 이를 엑셀에서 여는 방법

 

제2의 방법 : "utf-8" 방식으로 되어 있는 CSV 파일을 엑셀에서 열 때 디코딩 방법을 디폴트인 "ANSI"가 아닌 "utf-8"방식으로 하도록 옵션을 설정하는 방법

 

 

3) 실행 방법

 

◎제1의 방법

 

가장 간단한 방법은 "중계 수단"으로 "윈도우의 메모장"을 활용하는 방법입니다. 

메모장으로 CVS 파일을 읽어 와서 "다른 이름으로 저장"을 실행할 때 인코딩 옵션에서 "ANSI"를 선택해 주고 저장합니다. 그러면, 이 한글이 "ANSI"포맷으로 변환되었으므로 엑셀에서 아무 문제없이 열립니다. 

아주 간단합니다.

 

▼ CVS파일 오픈 → 다른 이름으로 저장 인코딩 ANSI 저장

 

▼ 이 파일을 엑셀에서 열면 한글이 정상적으로 보입니다.

 


제2의 방법

 

엑셀을 실행한 다음 "데이터" → "텍스트"를 선택

 

▼오픈할 CSV 파일을 선택 가져오기 선택

 

▼디코딩 옵션으로 "65001:유니코드(UTF-8)를 선택 → 다음 

 

▼ 구분 기호에 "기타"를 선택하고 공백란에 ", (쉼표)"를 넣어줌 → 다음 

 

▼ 다음 단계는 건너뜀  → 다음 

 

▼ 데이터가 들어갈 위치로 "새 워크시트"를 선택  → 확인 

 

▼ 아래와 같이 한글이 정상적으로 열립니다.

이상으로 CSV파일을 엑셀로 열 때 한글이 깨짐 현상을 개선하는 방법에 대해서 살펴보았습니다.

감사합니다.

 

Updated on 7/30/2020 : 제 3의 방법이 한가지 더 있습니다.

Encoding 방법을 엑셀에서 읽을 수 있도록 지정합니다.  아래 캡처 화면처럼 encoding = "utf-8-sig"로 지정합니다.

 

https://youtu.be/zNnKMtY8qyk


이 글을 공유합시다

facebook twitter kakaoTalk naver band