엑셀에서 CSV 파일 열면 한글이 깨지는 현상, 원인과 해결법

엑셀에서 CSV를 열었을 때 한글이 'Ãê°³'처럼 깨지는 이유는 파일에 UTF-8 BOM 정보가 없기 때문입니다. 엑셀이 구형 인코딩으로 오인하는 문제의 원인을 설명하고, 메모장이나 온라인 도구로 간단히 해결하는 법을 안내합니다.

내 얘기: 메모장에선 멀쩡한데 엑셀만 열면 깨진다

분명 텍스트 파일에서는 멀쩡히 보이던 한글이 엑셀에서 CSV 파일을 열자마자 'Ãë°³' 또는 '°í°´' 같은 외계어로 깨져 나옵니다. 고객 목록, 주문 데이터 등 중요한 파일이라 당황스럽지만, 파일 자체가 손상된 것은 아니니 걱정할 필요 없습니다. 원인은 간단합니다. 엑셀이 파일의 '언어 규칙(인코딩)'을 잘못 추측했기 때문입니다.

컴퓨터는 글자를 숫자로 저장합니다. 어떤 규칙으로 숫자를 글자로 바꿀지 정한 약속이 인코딩입니다. 현재 웹 표준은 'UTF-8' 이라는 규칙입니다. UTF-8은 한글 한 글자를 3바이트로 표현합니다. 반면, 한국어 윈도우는 과거부터 'EUC-KR' (또는 확장판인 'CP949')이라는 규칙을 써 왔습니다. 이것은 한글을 2바이트로 표현합니다.

최신 메모장이나 전문 편집기는 파일을 열 때 어떤 규칙인지 똑똑하게 알아맞힙니다. 하지만 엑셀은 CSV 파일을 더블클릭해서 열 때, 별다른 표시가 없으면 무조건 윈도우 기본값인 EUC-KR로 읽으려고 시도합니다. 3바이트로 저장된 글자를 2바이트 단위로 억지로 해석하니, 당연히 글자가 완전히 깨져 보이는 것입니다.

이 문제를 해결하는 열쇠는 엑셀에게 "이 파일은 구형 EUC-KR이 아니라 UTF-8이야" 라고 알려주는 것입니다. 그 역할을 하는 것이 바로 'BOM'입니다.

BOM 이란 무엇인가? (Byte Order Mark)

BOM(Byte Order Mark)은 파일 맨 앞에 몰래 숨어 있는 2~4바이트짜리 표식입니다. 눈에는 보이지 않지만, 프로그램을 위한 꼬리표 역할을 합니다. 그중 UTF-8 BOM은 `EF BB BF` 라는 3바이트 값으로, 텍스트 편집기나 엑셀에게 '이 파일은 UTF-8 형식으로 작성되었습니다' 라고 알려줍니다.

BOM이 붙어 있는 파일을 엑셀에서 열면, 엑셀은 이 표식을 보고 '아, UTF-8이구나!' 하고 처음부터 올바른 규칙으로 글자를 읽어 들입니다. 한글이 깨질 일이 없어집니다. 우리가 할 일은 CSV 파일 맨 앞에 이 BOM 표식을 붙여주는 것입니다.

파일 종류엑셀의 해석 방식결과
UTF-8 (BOM 없음)윈도우 기본 인코딩(EUC-KR)으로 추측한글 깨짐 (Ãê°³, °í°´)
UTF-8 (BOM 있음)파일 앞 BOM을 보고 UTF-8으로 인식정상 표시 (고객, 상품)

해결법 1: 엑셀 '데이터 가져오기' 기능 사용 (도구 불필요)

가장 정석적인 방법입니다. CSV 파일을 더블클릭하지 말고, 엑셀의 데이터 가져오기 기능을 통해 인코딩을 직접 지정하는 것입니다. 가끔 한 번씩 작업한다면 이 방법으로 충분합니다.

  1. 엑셀에서 새 통합 문서를 엽니다.
  2. 상단 메뉴에서 [데이터] 탭을 클릭합니다.
  3. 리본 메뉴 왼쪽의 [데이터 가져오기] > [파일에서] > [텍스트/CSV에서]를 선택합니다.
  4. 한글이 깨졌던 CSV 파일을 선택하고 [가져오기]를 누릅니다.
  5. 미리보기 창이 나타나면, '파일 원본'이라는 드롭다운 메뉴를 찾습니다. 아마 '949 : 한국어(완성형)' 등으로 되어 있을 것입니다.
  6. 이것을 '65001 : 유니코드(UTF-8)'로 변경합니다. 미리보기에서 한글이 정상적으로 표시되는 것을 확인합니다.
  7. [로드] 버튼을 누르면 한글이 깨지지 않은 데이터가 시트에 삽입됩니다.
이 방법은 매번 파일을 열 때마다 반복해야 하는 번거로움이 있습니다. 여러 사람에게 CSV 파일을 자주 전달해야 한다면 파일 자체를 수정하는 것이 낫습니다.

해결법 2: 메모장으로 'UTF-8(BOM)' 형식으로 다시 저장

파일 자체에 BOM을 붙여서, 누가 어디서 열든 한글이 깨지지 않게 만드는 방법입니다. 윈도우에 내장된 메모장만으로 간단히 처리할 수 있습니다.

  1. CSV 파일을 직접 열지 말고, 마우스 오른쪽 버튼으로 클릭한 뒤 [연결 프로그램] > [메모장]을 선택합니다.
  2. 메모장에서 한글이 정상적으로 보이는지 확인합니다.
  3. 메모장 메뉴에서 [파일] > [다른 이름으로 저장]을 클릭합니다.
  4. 저장 대화상자 하단의 '인코딩' 드롭다운 메뉴를 클릭해서 'UTF-8(BOM)' 또는 'UTF-8'을 선택합니다. (윈도우 11 메모장은 'UTF-8'이 기본적으로 BOM을 포함합니다.)
  5. '파일 형식'은 '모든 파일'로 변경하고, 파일 이름은 `데이터.csv` 처럼 `.csv` 확장자를 유지합니다.
  6. [저장] 버튼을 눌러 기존 파일을 덮어쓰거나 새 이름으로 저장합니다.
  7. 새로 저장된 파일을 엑셀에서 열면 BOM 덕분에 한글이 깨지지 않습니다.

해결법 3: CSV 생성 단계에서 BOM 포함하기 (JSON → CSV 변환)

위와 같은 JSON 데이터를 툴즈의 'JSON ↔ CSV 변환기'에 붙여넣고 CSV로 변환할 때, 옵션 하나만 켜면 됩니다. 하단의 옵션 중 '엑셀 호환 UTF-8 BOM' 체크박스를 켜두기만 하면 됩니다.

이 옵션을 켜고 '저장' 버튼으로 파일을 다운로드하면, 결과물인 CSV 파일 맨 앞에 자동으로 BOM(`EF BB BF`)이 추가됩니다. 이 파일은 어떤 PC의 엑셀에서 열어도 한글이 깨지지 않으므로, 데이터 전달 시 발생할 수 있는 소통 문제를 원천 차단할 수 있습니다.

json
[
  {"이름":"홍길동", "부서":"영업팀", "입사일":"2023-05-10"},
  {"이름":"김철수", "부서":"개발팀", "입사일":"2022-11-21"}
]
중요한 점은 '복사'가 아니라 '저장' 버튼을 사용해야 한다는 것입니다. BOM은 파일의 일부이므로, 텍스트만 복사해서 붙여넣으면 BOM 정보가 따라가지 않습니다. 엑셀 사용자에게 전달할 파일은 반드시 '저장' 버튼으로 다운로드하세요.

자주 묻는 질문

Mac에서는 왜 CSV 한글이 깨지지 않나요?

macOS는 시스템의 기본 인코딩 자체가 UTF-8이기 때문입니다. 따라서 Mac용 엑셀이나 Numbers 같은 프로그램은 BOM 표식이 없는 파일도 일단 UTF-8로 해석하려고 시도합니다. 반면 윈도우는 하위 호환성 때문에 여전히 EUC-KR(CP949)을 기본으로 삼고 있어 이런 문제가 발생합니다.

BOM을 붙이면 항상 좋은 건가요?

아닙니다. BOM은 마이크로소프트 제품과의 호환성을 위해 사용하는 '편법'에 가깝습니다. 리눅스/유닉스 환경의 일부 스크립트나 오래된 개발 도구들은 파일 맨 앞의 정체불명 3바이트(BOM) 때문에 파일을 잘못 읽고 오류를 일으키기도 합니다. 엑셀 사용자와의 호환성이 필요한 경우가 아니라면, BOM 없는 UTF-8로 저장하는 것이 더 표준적인 방법입니다.

CSV 파일에 쉼표(,)가 포함된 데이터는 어떻게 하나요?

올바른 CSV 생성 규칙에 따르면, 데이터 안에 쉼표나 줄바꿈이 포함된 경우 해당 필드 전체를 큰따옴표(")로 감싸야 합니다. 예를 들어 '무선 드릴, 20V' 라는 상품명은 CSV 파일에 '"무선 드릴, 20V"' 와 같이 저장됩니다. 툴즈의 JSON → CSV 변환기는 이 규칙을 자동으로 처리합니다.

이미 깨진 글자('Ãê°³')를 다시 한글로 되돌릴 수 없나요?

한번 깨진 상태로 저장된 텍스트는 복원이 매우 어렵습니다. 'Ãê°³'는 UTF-8 '한글'을 EUC-KR로 잘못 읽은 결과가 아니라, UTF-8 '한글'을 Latin1(ISO-8859-1) 같은 1바이트 인코딩으로 오인했을 때 나타나는 현상입니다. 원본 파일이 있다면 인코딩을 올바르게 지정해서 여는 것이 유일한 해결책입니다. 깨진 텍스트 자체를 복원하려 시도하는 것은 권장하지 않습니다.