이 글이 필요한 사람과 바로 답

ChatGPT에서 받은 CSV를 더블클릭했더니 품목명, 이름, 주소 같은 한글이 물음표나 낯선 문자로 보이는 경우가 있습니다. 먼저 같은 파일을 반복해서 내려받을 필요는 없습니다. Excel의 데이터 → 텍스트/CSV에서로 가져오면서 파일 원본을 UTF-8로 지정하거나, CSV를 UTF-8 BOM 형식으로 다시 저장하면 됩니다.

ChatGPT는 CSV와 XLS·XLSX를 데이터 분석 파일로 지원합니다.[1] OpenAI의 파일 업로드 도움말도 CSV를 스프레드시트 분석 예시로 들고 있습니다.[2] 다만 CSV는 글꼴이나 셀 서식을 저장하는 Excel 통합 문서가 아니라 텍스트 파일입니다. 한글이 깨지는 문제는 파일 안의 바이트를 Excel이 어떤 문자 인코딩으로 해석했는지부터 확인해야 합니다.

확인한 날짜·환경과 범위

  • 확인일: 2026년 9월 3일
  • 직접 검증: Windows의 Excel 16.0, 빌드 20326
  • 테스트 파일: 품목·담당·수량 세 열과 두 행만 넣은 합성 CSV
  • 비교 조건: BOM 없는 UTF-8과 UTF-8 BOM, 내용과 줄바꿈은 동일

실제 회사 자료나 ChatGPT 대화 파일은 사용하지 않았습니다. ChatGPT 계정에서 파일을 생성하는 과정도 이번 테스트에 포함하지 않았습니다. 대신 생성 도구와 무관하게 같은 CSV 바이트를 Excel이 어떻게 여는지 비교했습니다. ChatGPT 화면이나 요금제별 파일 기능은 계정 설정에 따라 달라질 수 있습니다.[1][2]

공식 정보에서 확인한 기준

OpenAI 도움말은 스프레드시트를 준비할 때 첫 행에 설명적인 열 이름을 넣고, 한 행에 한 건씩 배치하며, 한 시트에 관련 없는 표를 여러 개 섞지 말라고 안내합니다.[1] 한글 깨짐을 고친 뒤 분석 정확도까지 확인하려면 이 구조도 같이 점검해야 합니다.

Microsoft는 UTF-8 CSV에 BOM(Byte Order Mark)이 있으면 Excel에서 일반적으로 열 수 있다고 설명합니다. BOM이 없다면 Power Query의 데이터 가져오기나 텍스트 가져오기 기능을 쓰는 방법을 안내합니다.[3] BOM은 파일 맨 앞의 세 바이트 EF BB BF입니다. 화면에 보이는 글자를 바꾸는 기능이 아니라, 이 파일을 UTF-8로 읽으라는 표지에 가깝습니다.

직접 검증 과정과 실제 결과

Python으로 내용이 같은 CSV 두 개를 만들었습니다. 하나는 utf-8, 다른 하나는 utf-8-sig로 저장했습니다. 두 번째 방식은 파일 앞에 UTF-8 BOM을 붙입니다. 생성 직후 바이트를 읽어 보니 일반 UTF-8 파일은 68바이트였고 첫 세 바이트가 ED 92 88이었습니다. BOM 파일은 71바이트였고 EF BB BF로 시작했습니다.

이 두 파일을 Excel COM 자동화의 Workbooks.Open으로 각각 열고 A1, A2, B2, C2 값을 읽었습니다. 콘솔 문자 인코딩이 결과를 다시 흐리지 않도록 한글 셀은 UTF-8 Base64로 바꾼 뒤 원문과 비교했습니다.

파일 파일 앞 3바이트 Excel에서 한글 셀 일치 확인된 현상
BOM 없는 UTF-8 ED 92 88 아니오 한글 셀이 물음표와 다른 문자로 바뀜
UTF-8 BOM EF BB BF 예 품목, 노트북, 담당자 예시 이름과 숫자가 원문대로 열림

같은 Excel, 같은 표 내용에서 BOM 유무만 바꾼 비교입니다. 이번 환경에서는 BOM 파일만 더블클릭에 해당하는 일반 열기 경로에서 한글을 정확히 읽었습니다. 이 결과를 모든 Excel 버전과 모든 지역 설정에 그대로 일반화할 수는 없습니다. Microsoft가 BOM 없는 파일에는 가져오기 기능을 안내하는 이유와는 일치합니다.[3]

흔히 실패하는 접근

글꼴만 바꾸기

깨진 글자가 셀에 이미 들어왔다면 글꼴을 맑은 고딕으로 바꿔도 원래 한글이 돌아오지 않습니다. 표시용 글꼴보다 파일을 읽는 인코딩 단계가 먼저입니다.

확장자만 xlsx로 바꾸기

result.csv를 result.xlsx로 이름만 바꾸면 파일 내부 형식은 CSV 그대로입니다. Excel 통합 문서로 변환하려면 CSV를 올바른 인코딩으로 연 뒤 다른 이름으로 저장에서 Excel 통합 문서 형식을 선택해야 합니다.

깨진 상태로 다시 저장하기

잘못 해석된 문자를 확인하지 않고 저장하면 원래 바이트를 덮어쓸 수 있습니다. 먼저 원본을 복사해 두고, 원본 CSV는 닫은 상태에서 가져오기 또는 변환 작업을 하세요.

민감한 파일을 온라인 변환기에 올리기

인코딩 하나를 바꾸려고 직원명, 거래 내역, 연락처가 담긴 CSV를 출처가 불분명한 웹 변환기에 올리는 방식은 피하는 편이 낫습니다. Excel의 가져오기 기능이나 로컬 Python만으로 처리할 수 있습니다.

단계별 해결법

방법 1: Excel에서 원본 CSV를 UTF-8로 가져오기

  1. 깨진 CSV를 저장하지 말고 닫습니다.
  2. Excel에서 빈 통합 문서를 엽니다.
  3. 데이터 → 텍스트/CSV에서를 선택하고 원본 파일을 고릅니다.
  4. 미리보기에서 파일 원본 또는 인코딩을 65001: Unicode (UTF-8)로 맞춥니다.
  5. 쉼표 구분과 열 나눔이 맞는지 확인한 뒤 불러옵니다.
  6. 한글과 숫자 열을 확인하고 .xlsx로 저장합니다.

메뉴 이름은 Excel 버전과 언어 설정에 따라 조금 다를 수 있습니다. Microsoft 공식 안내의 Power Query 또는 텍스트 가져오기 경로가 이 방법의 근거입니다.[3]

방법 2: ChatGPT에 UTF-8 BOM 파일을 다시 요청하기

ChatGPT가 데이터 분석용 Python을 실행할 수 있는 대화라면 아래 문장을 붙여 넣어 다시 요청할 수 있습니다. OpenAI는 일부 데이터 분석 작업에서 ChatGPT가 상태가 유지되는 Jupyter 환경에서 Python을 실행한다고 설명합니다.[1] 생성 뒤에는 첫 바이트나 Excel 열기 결과를 직접 확인해야 합니다.

첨부한 표를 CSV로 저장해 주세요.
조건:
1. 파일 인코딩은 UTF-8 BOM으로 지정합니다.
2. Python을 사용한다면 encoding="utf-8-sig"로 저장합니다.
3. 첫 행은 열 이름, 한 행은 한 건의 기록으로 만듭니다.
4. 저장 후 파일의 첫 3바이트가 EF BB BF인지 확인해 결과를 알려 주세요.
5. 원본 값의 행 수와 열 수가 저장 전후에 같은지도 확인해 주세요.

이 문장은 재사용 가능한 요청서이지, 모든 대화에서 파일 생성이 가능하다는 보장은 아닙니다. 모델, 플랜, 작업공간 설정, 계정 기능에 따라 사용할 수 있는 파일 기능이 달라질 수 있습니다.[1]

방법 3: 로컬 Python으로 BOM 붙이기

Python을 쓸 수 있다면 원본을 UTF-8로 읽고 UTF-8 BOM으로 다시 저장할 수 있습니다. 원본 인코딩이 UTF-8이라는 전제의 예시입니다.

from pathlib import Path

source = Path("result.csv")
target = Path("result-utf8-bom.csv")
text = source.read_text(encoding="utf-8")
target.write_text(text, encoding="utf-8-sig")

raw = target.read_bytes()
assert raw.startswith(bytes.fromhex("EFBBBF"))
print("UTF-8 BOM 확인 완료")

UnicodeDecodeError가 나면 원본이 UTF-8이 아닐 수 있습니다. 그때 cp949 같은 값을 무작정 대입해 덮어쓰지 말고, 원본 프로그램의 내보내기 설정이나 만든 사람에게 인코딩을 먼저 확인하세요.

검증 체크리스트

  • 원본 CSV를 별도 복사해 보관했는가
  • 파일의 첫 세 바이트가 EF BB BF인지 확인했는가
  • 첫 행의 열 이름이 정상 한글로 보이는가
  • 행 수와 열 수가 원본과 같은가
  • 쉼표가 데이터에 포함된 셀이 따옴표로 올바르게 묶였는가
  • 날짜의 앞자리 0, 긴 숫자, 우편번호가 바뀌지 않았는가
  • Excel에서 확인한 뒤 필요하면 .xlsx로 저장했는가

한글만 정상이라고 끝내지 마세요. CSV를 열 때 날짜 자동 변환, 긴 숫자의 지수 표기, 앞자리 0 삭제가 함께 생길 수 있습니다. 민감한 업무표라면 임의의 몇 셀이 아니라 행 수, 열 수, 주요 식별 열을 같이 대조해야 합니다.

보안과 개인정보

ChatGPT에 올리는 파일은 필요한 열만 남기고 이름, 연락처, 계좌번호, 사번처럼 개인을 식별할 수 있는 값은 삭제하거나 대체값으로 바꾸세요. OpenAI의 업로드 도움말에는 파일별 크기와 사용자·조직별 사용 한도가 있으며, 파일 보관과 삭제는 별도 보존 정책을 확인하도록 연결되어 있습니다.[1][2] 회사 관리형 계정이라면 조직 정책도 먼저 확인해야 합니다.

오류 화면을 공유할 때 파일명, 최근 문서 목록, 사용자 계정명이 함께 찍히지 않았는지 봅니다. 이 글의 예시는 실제 인물이나 주문 자료가 아닌 합성 데이터입니다.

한계와 직접 확인하지 못한 부분

이번 테스트는 Excel 16.0 빌드 20326 한 환경에서 실행했습니다. Mac용 Excel, 웹용 Excel, 다른 Windows 지역 설정은 직접 비교하지 않았습니다. ChatGPT에서 실제로 CSV를 생성하고 내려받는 과정도 검증 범위 밖입니다. 따라서 해결 순서는 Microsoft가 안내한 UTF-8 가져오기 또는 BOM 저장 방식과, 로컬에서 확인한 Excel 열기 결과를 결합한 것입니다.

정량 키워드 도구로 검색량을 확인하지 않았습니다. 다만 Microsoft가 이 문제만 다루는 별도 지원 문서를 운영하고 있고, ChatGPT가 CSV 분석을 공식 지원하므로 구체적인 문제 해결 검색 의도가 있다고 판단했습니다.[1][3]

결론: 가장 덜 위험한 순서

원본을 보관한 뒤 Excel의 데이터 가져오기에서 UTF-8로 여는 방법이 먼저입니다. 다시 받을 수 있다면 ChatGPT에 utf-8-sig와 BOM 확인을 명시하세요. 마지막에는 한글뿐 아니라 행·열 수와 날짜·긴 숫자도 대조해야 합니다. 반복해서 더블클릭하거나 확장자만 바꾸는 방법은 해결책이 아닙니다.

공식 자료