Base64를 CSV로 디코딩하는 방법
- 입력 · Base64에 Base64를 붙여넣으세요. 페이지를 열면 짧은 예시가 들어 있습니다.
- 출력 · 텍스트에서 행을 확인하세요. 구분자, 따옴표, 한글이나 악센트 문자가 이상하다면 다른 곳에서 파일을 열기 전에 미리 알 수 있습니다.
- 문자가
�로 보이면 문자 인코딩을 내보낸 파일의 인코딩으로 설정하세요. 오래된 한국어 Windows 프로그램에서 나온 파일은 EUC-KR, 서유럽권 프로그램에서 나온 파일은 Windows-1252인 경우가 많습니다. - 다운로드를 누르세요. 디코딩된 데이터가 쉼표로 구분된 행처럼 보이면 상태 표시줄의 추정 형식이 CSV가 되고 파일은
decoded.csv로 저장됩니다. 짧은 파일이나 세미콜론, 탭으로 구분된 파일은 텍스트로 표시되어decoded.txt로 저장되니, 확장자를.csv로 바꾸세요.
미리보기에 어떤 문자 인코딩을 골랐든, 다운로드는 디코딩된 바이트를 바꾸지 않고 그대로 씁니다.
예시
예시 aWQsbmFtZSxlbWFpbAoxLEFkYSxhZGFAZXhhbXBsZS5jb20KMixMaW51cyxsaW51c0BleGFtcGxlLmNvbQo=는 다음과 같이 디코딩됩니다.
id,name,email
1,Ada,ada@example.com
2,Linus,linus@example.com
시작 부분을 보세요. aWQs는 id,입니다. CSV 내보내기 파일에는 파일 형식처럼 공통 접두사가 없지만, 몇 가지 패턴은 도움이 됩니다.
| Base64 시작 부분 | 의미 |
|---|---|
77u/ | UTF-8 바이트 순서 표시. Excel의 “CSV UTF-8” 내보내기에서 흔함 |
//4 | UTF-16LE 바이트 순서 표시. “유니코드 텍스트” 내보내기(탭 구분)에서 흔함 |
UEsDB | ZIP 컨테이너: CSV가 아니라 XLSX 통합 문서 |
H4sI | gzip 압축 데이터. gzip Base64 디코더로 디코딩하세요 |
Base64 CSV 파일이 나오는 곳
리포팅과 분석 API는 JSON이 원시 파일 바이트를 담을 수 없기 때문에 내보내기 파일을 JSON 응답 안의 Base64 필드로 돌려주는 경우가 많습니다. 웹훅과 메시지 큐도 첨부 파일을 같은 방식으로 다루며, 자동 발송 이메일은 CSV 첨부 파일을 MIME Base64 파트로 담습니다. 원본 메시지에서 이를 추출하려면 이메일 디코더를 쓰세요. Git 호스팅 API는 파일 내용을 줄 바꿈이 들어간 Base64로 돌려주는데, 이 디코더는 줄 바꿈을 건너뜁니다.
JSON 응답에 인코딩된 필드가 여러 개라면 JSON 안의 Base64 디코딩이 한 번에 모두 찾아 줍니다.
디코딩한 파일을 Excel에서 열기
CSV에는 문자 인코딩을 선언하는 헤더가 없으므로 스프레드시트 프로그램이 추측합니다.
- UTF-8 BOM이 있으면 (Base64가
77u/로 시작) 파일을 더블클릭해도 Excel이 악센트 문자와 한글 같은 비라틴 문자를 올바르게 읽습니다.77u/aWQ7bmFtZTtjaXR5CjE7Wm/DqztLw7Zsbgo=가 그런 파일이며,Zoë와Köln이 그대로 유지됩니다. - BOM이 없으면 Windows용 Excel은 시스템의 레거시 코드 페이지를 쓰므로 UTF-8 텍스트가
Zoë처럼 깨집니다. 더블클릭하지 말고 데이터 > 텍스트/CSV에서 가져오기를 써서 UTF-8을 고르세요. - 쉼표 대신 세미콜론은 쉼표를 소수점 구분자로 쓰는 나라에서 흔합니다. Excel은 시스템의 목록 구분자가 세미콜론일 때만 이런 파일을 제대로 엽니다. 그렇지 않다면 가져오기 대화 상자에서 구분자를 지정하세요.
코드에서 Base64를 CSV로
import base64, csv, io
s = "aWQsbmFtZSxlbWFpbAoxLEFkYSxhZGFAZXhhbXBsZS5jb20KMixMaW51cyxsaW51c0BleGFtcGxlLmNvbQo="
raw = base64.b64decode(s)
with open("export.csv", "wb") as f:
f.write(raw)
rows = list(csv.reader(io.StringIO(raw.decode("utf-8-sig"))))
rows[1] # ['1', 'Ada', 'ada@example.com']
utf-8-sig는 BOM이 있으면 제거하고, 없으면 아무 영향도 주지 않습니다. 명령줄에서는 base64 -d export.b64 > export.csv가 다운로드 버튼과 같은 일을 합니다. 큰 파일을 스트리밍하는 방법은 Python에서 Base64를 참고하세요.
자주 묻는 질문
Base64를 CSV 파일로 바꾸려면 어떻게 하나요?
위에 Base64를 붙여넣고 다운로드를 누르세요. 도구가 행을 CSV로 인식하면 decoded.csv로 저장되고, 그렇지 않으면 decoded.txt로 저장됩니다. 이 파일은 내용을 바꾸지 않고 확장자만 .csv로 바꾸면 됩니다.
Excel에서 CSV를 열면 한글이나 악센트 문자가 깨지는 이유는 무엇인가요?
Windows용 Excel은 바이트 순서 표시(BOM)가 없는 CSV 파일을 레거시 코드 페이지로 읽습니다. 한국어 Windows라면 CP949(EUC-KR 확장)입니다. 데이터 > 텍스트/CSV에서 가져오기로 파일을 불러와 UTF-8(65001)을 고르거나, 보낸 사람에게 BOM으로 시작하는 “CSV UTF-8” 형식을 요청하세요.
Base64가 UEsDB로 시작합니다. CSV인가요?
아닙니다. ZIP 컨테이너이므로 XLSX 통합 문서나 압축된 내보내기 파일입니다. 스프레드시트는 Base64를 Excel로를, 압축 파일은 Base64를 ZIP으로를 사용하세요.
크기 제한이 있나요?
정해진 제한은 없습니다. 디코딩은 브라우저에서 실행되므로 매우 큰 내보내기 파일은 기기 메모리에 따라 한계가 정해집니다. 수 GB짜리 파일이라면 명령줄의 base64 -d가 더 실용적입니다.