문제 상황
업무 중에 데이터 파일을 전달받거나 저장할 때 CSV 형식을 자주 사용한다.
문제는 이 CSV 파일을 엑셀에서 열었을 때 한글이 정상적으로 보이지 않는 경우다.
예를 들어 고객 이름이나 주소 같은 한글 데이터가 다음처럼 깨져 보인다.
안녕하세요
또는 물음표나 알 수 없는 문자로 표시되는 경우도 있다.
특히 다른 프로그램에서 CSV 파일을 생성했거나, 웹 서비스에서 다운로드한 CSV 파일을 바로 엑셀로 열 때 이런 문제가 자주 발생한다. 검색해 보면 많은 사람들이 겪는 대표적인 엑셀 CSV 한글 깨짐 문제다.
오류 원인
이 문제는 대부분 문자 인코딩 방식 때문에 발생한다.
CSV 파일은 단순 텍스트 파일이라서 내부에 어떤 문자 인코딩을 사용하는지 정보가 명확히 포함되지 않는 경우가 많다.
엑셀은 기본적으로 시스템 인코딩을 기준으로 CSV 파일을 열기 때문에 실제 파일 인코딩이 UTF-8인데 엑셀이 다른 인코딩으로 읽으면 한글이 깨진다.
대표적으로 다음과 같은 상황에서 문제가 발생한다.
웹 서비스에서 UTF-8로 생성된 CSV 파일
파이썬이나 프로그램에서 UTF-8로 저장한 CSV 파일
맥이나 리눅스 환경에서 만든 CSV 파일
이 경우 엑셀은 이를 자동으로 인식하지 못해 문자 깨짐 현상이 생긴다.
해결 방법
가장 안정적인 방법은 엑셀에서 CSV 파일을 직접 열지 말고 데이터 가져오기 기능을 사용하는 것이다.
1단계
엑셀을 먼저 실행한다.
2단계
상단 메뉴에서 데이터 탭을 선택한다.
3단계
텍스트/CSV 가져오기 메뉴를 클릭한다.
4단계
한글이 깨지는 CSV 파일을 선택한다.
5단계
파일 미리보기 화면이 나타나면 파일 원본 또는 인코딩 옵션을 UTF-8로 변경한다.
6단계
미리보기 화면에서 한글이 정상적으로 보이는지 확인한 뒤 로드를 클릭한다.
이 방법을 사용하면 엑셀이 CSV 파일을 올바른 인코딩으로 읽기 때문에 대부분의 한글 깨짐 문제가 해결된다.
추가 해결 방법
CSV 파일을 메모장이나 편집기로 열어서 다시 저장하는 방법도 있다.
메모장에서 CSV 파일을 연 뒤 다른 이름으로 저장을 선택한다. 저장할 때 인코딩을 UTF-8로 지정하고 다시 저장한다.
윈도우 메모장 기준으로는 저장 창 하단에 인코딩 옵션이 있다.
또 다른 방법은 엑셀 대신 구글 스프레드시트를 사용하는 것이다. 구글 스프레드시트는 UTF-8 CSV 파일을 비교적 안정적으로 인식한다.
개발 환경에서 CSV 파일을 생성하는 경우라면 UTF-8 BOM 방식으로 저장하면 엑셀에서 한글 깨짐이 발생할 가능성이 줄어든다.
예를 들어 파이썬에서는 다음과 같이 저장할 수 있다.
encoding='utf-8-sig'
이 방식은 엑셀이 UTF-8 파일을 인식하는 데 도움이 된다.
정리
엑셀 CSV 한글 깨짐 문제는 대부분 문자 인코딩 차이 때문에 발생한다.
가장 많이 사용하는 해결 방법은 엑셀에서 CSV 파일을 바로 열지 않고 데이터 가져오기 기능으로 UTF-8 인코딩을 지정하는 것이다.
만약 동일한 문제가 계속 발생한다면 CSV 파일을 UTF-8로 다시 저장하거나 UTF-8 BOM 방식으로 파일을 생성하는 방법도 함께 확인해 보는 것이 좋다.
실무에서는 CSV 파일을 자주 다루기 때문에 이 인코딩 문제를 한 번 이해해 두면 비슷한 상황에서 훨씬 빠르게 대응할 수 있다.