엑셀 텍스트 기반 문서 파일(CSV,TXT) 한글 깨져서 보이는 경우

반응형

엑셀 텍스트 기반 문서 파일(CSV,TXT) 한글 깨져서 보이는 경우

 

웹사이트 등에서 주소록, 통계 자료 등 텍스트 기반의 데이터를 다운로드 할때 대부분 쉼표(,) 등 구분문자로 열을 구분하는 CSV 파일로 내보내는 경우가 많습니다.

다운로드 받은 파일을 엑셀로 열면 포함돼있는 한글 등 Unicode 문자가 깨져서 나옵니다. 기타 텍스트(txt) 파일에서도 동일합니다.

이런 경우 Unicode 문자를 UTF-8로 인코딩한 문서에 해당되는데요, 대부분 웹사이트에서는 Unicode 문자를UTF-8로 인코딩하고 있습니다.

엑셀 utf-8

 

BOM과 UTF-8의 문제

  • Unoicode 인코딩 방식은 UTF-8, UTF-16, UTF-16 등이 있으며 BOM(Byte Order Mark)은 Unicode 인코딩 방식을 표시하는 식별 코드로서 문서 시작 부분에 삽입됩니다.
  • BOM은 문서 시작 부분 앞에 UTF-8 식별코드(utf-8 signature) 16진수 0xEF 0xBB 0xBF 3바이트를 삽입합니다.
  • UTF-8은 인코딩 코드 자체에 인코딩 식별 표시가 있습니다. 따라서 BOM 식별코드는 필요없습니다.
  • 엑셀은 Unicode 문자 해석 시 BOM 을 사용하므로 BOM 표시 없는 UTF-8 인코딩은 제대로 표시하지 못합니다.

▶ 참조 : http://blog.wystan.net/2007/08/18/bom-byte-order-mark-problem

 

아래 내용은 BOM 없이 UTF-8 인코딩 텍스트 기반 문서를 엑셀에서 여는 방법입니다. 간단한 주소록 파일을 예로 들겠습니다.(주소록.csv)

  1. 윈도우 메모장 파일을 사용하는 경우
  2. 엑셀 문서에서 외부 데이터 가져오기 사용하는 경우

 

1. 윈도우 메모장 파일을 사용하는 경우

 파일 탐색기에서 예시한 주소록.csv 문서를 윈도우 메모장으로 엽니다.

csv utf-8

  • 위 이미지와 같이 한글이 잘 나오고 있습니다. 

메모장에 열려있는 문서를 아래와 같이 다른 이름으로 저장합니다.

다른이름으로 저장 utf-8 bom

  • 윈도우10의 경우

    • txt확장자가 아닌경우(csv 등) 파일형식은 모든 파일을 선택합니다.
    • 하단 인코딩UTF-8 BOM 을 선택합니다.
  • 이전 버전 윈도우의 경우

    • txt확장자가 아닌경우(csv 등) 파일형식은 모든 파일을 선택합니다.
    • 하단 인코딩UTF-8 또는 UNICODE 를 선택합니다.

 파일 탐색기에서 저장한 문서 파일을 엑셀로 엽니다.

엑셀 csv

위의 이미지 같이 엑셀에서 한글이 잘 표시되는 것을 볼 수 있습니다.

2. 엑셀 문서에서 외부 데이터 가져오기 사용하는 경우(2013 버전)

엑셀 2013 버전에서 위의 파일을 외부 데이터 가져오기로 워크시트에 표시해보겠습니다.

 상단 메뉴 데이터 탭을 선택하고 리본 메뉴 좌측 외부데이터 가져오기 도구에서 텍스트를 선택합니다.

외부 데이터 가져오기

1단계 텍스트 마법사 창이 열립니다.(3단계 중 1단계)

텍스트 마법사 UTF-8

  • 열을 쉼표로 구분한 문서이므로 구분 기호로 분리됨(D) 의 선택을 확안합니다.
  • 원본 파일(O): 란에 65001 : 유니코드(UTF-8)2013 버전에서는 기본으로 선택돼 있는데 아니면 선택란 우측 화살표를 눌러 65001 : 유니코드(UTF-8) 을 선택합니다.
  • 하단 미리보기 상자에 제대로 표시된 한글이 보입니다.

2단계 단계 텍스트 마법사 창이 열립니다.(3단계 중 2단계)

텍스트마법사 구분 기호

  • 구분 기호 선택 항목 중 쉼표 만 체크합니다.
  • 하단 데이터 미리보기(P) 부분을 보면 열이 구분된 것을 볼 수 있습니다.

3단계 텍스트 마법사 창이 열립니다.(3단계 중 3단계)

데이터 서식

  • 열 데이터 서식은 일반으로 그대로 두고 마침(F)를 클릭합니다.

데이터 가져오기 종료 창입니다. 표시할 데이터 위치를 선택하고 확인을 클릭합니다.

데이터 가져오기

 워크시트에 데이터가 제대로 표시된 것이 확인되면 엑셀 문서로 저장하고 종료합니다.

엑셀 UTF-8

▼ 엑셀 indirect 함수를 이용한 다중 종속(소분류) 드롭다운 목록

▼ 엑셀 드롭다운 목록 표(테이블)만들기

▼ 엑셀 VBA 워크시트 이벤트를 처리하는 VBA 프로시저 코드 작성

▼ 엑셀 VBA CurrentRegion 속성 기존 데이터 영역에 연속해서 데이터 추가하는 프로시저

 

반응형