CSV 한글 깨짐 복구

CSV 파일을 끌어다 놓으면 인코딩과 구분자를 찾아 미리 보여 주고, 엑셀에서 한글이 깨지지 않는 파일로 바꿔 드립니다.

입력한 텍스트와 파일의 계산·변환은 브라우저에서 수행하며, 도구 기능은 입력 원문과 결과를 서버로 전송하지 않습니다. 방문 통계와 광고를 위한 통신은 개인정보처리방침을 확인하세요.

사용법

  1. 위의 상자에 CSV 파일을 끌어다 놓거나 상자를 눌러 파일을 고르세요. 파일은 내 컴퓨터를 떠나지 않습니다.
  2. 요약과 앞 20줄 미리보기를 확인하세요. 글자가 깨져 보이거나 칸이 제대로 나뉘지 않으면 읽는 방식에서 자동 대신 알맞은 인코딩이나 구분자를 직접 고르세요.
  3. 저장 형식을 고르세요. 엑셀로 열 파일이면 엑셀용(UTF-8 BOM, 쉼표), 프로그램이나 데이터베이스에 넣을 파일이면 UTF-8(BOM 없음)이 알맞습니다. 구분자도 바꿀 수 있습니다.
  4. 다운로드를 누르면 원본 이름에 형식 이름이 붙은 새 파일이 저장됩니다. 원본 파일은 바뀌지 않습니다.

예시

엑셀에서 한글이 이상한 기호로 나올 때

BOM 없이 UTF-8로 저장한 CSV를 윈도우용 엑셀에서 열면 한글이 깨져 보입니다. 파일을 여기에 놓고 엑셀용을 그대로 두고 내려받으세요. 새 파일 맨 앞에 UTF-8이라고 알려 주는 3바이트 BOM이 붙어서 엑셀에서 한글이 제대로 열립니다.

은행·공공기관 파일이 UTF-8 도구에서 깨질 때

은행, 공공기관 사이트, 오래된 국내 프로그램은 EUC-KR(CP949)로 내보내는 경우가 많습니다. 도구가 이를 자동으로 알아보고 UTF-8로 바꿔 주므로 같은 파일을 파이썬, 데이터베이스, 웹 앱에서 바로 읽을 수 있습니다.

입력
C0 CC B8 A7 2C B3 AA C0 CC  (EUC-KR 바이트)
결과
이름,나이  (UTF-8로 변환한 뒤)

자세한 설명

CSV는 글자만 담긴 파일이지만 그 글자를 어떤 인코딩으로 저장했는지는 파일에 적혀 있지 않습니다. 엑셀은 이를 추측해야 하고, 바이트 순서 표시(BOM)가 없으면 대개 윈도우에 설정된 옛 코드 페이지로 읽습니다. 그래서 한글이 든 UTF-8 파일은 이상한 기호로 보이고, EUC-KR 파일을 UTF-8 도구에서 열면 깨짐 문자가 나옵니다. 이 도구는 파일의 원본 바이트를 보고 인코딩을 판별해서, 저장하기 전에 결과를 미리 보여 줍니다.

판별은 순서대로 진행합니다. BOM이 있으면 바로 정해집니다. 없으면 파일 전체가 올바른 UTF-8인지 확인하는데, EUC-KR로 쓴 한글이 우연히 올바른 UTF-8이 될 확률은 사실상 없어서 강한 단서가 됩니다. UTF-8이 아니면 EUC-KR(CP949)로 읽고, 읽을 수 없는 바이트의 비율과 한글이 차지하는 비중으로 판단합니다. 근거가 약하면 그렇다고 알려 주고 인코딩을 직접 고르게 합니다.

구분자는 쉼표, 탭, 세미콜론, 세로선을 후보로 앞쪽 줄을 따옴표를 존중하며 읽어 보고, 모든 줄이 같은 수의 칸으로 나뉘는 후보를 고릅니다. 칸은 RFC 4180 규칙대로 해석합니다. 큰따옴표로 감싼 칸은 구분자와 줄바꿈을 담을 수 있고, 따옴표 두 개는 따옴표 하나를 뜻합니다. 새 파일을 쓸 때는 따옴표가 필요한 칸에만 따옴표를 붙입니다.

읽기와 변환은 백그라운드 스레드에서 돌아서, 수 MB 파일에서도 화면이 멈추지 않습니다. 엑셀용 저장 형식은 BOM이 붙은 UTF-8, 쉼표, 윈도우 줄바꿈입니다. 엑셀 자체의 습관은 파일 밖의 문제입니다. 엑셀이 CSV를 열 때 숫자 앞의 0을 지우거나 긴 숫자를 지수 표기로 바꾸는 것은 인코딩이 아니라 엑셀의 가져오기 설정이 정합니다.

자주 묻는 질문

파일이 어딘가로 올라가나요?

아니요. 파일은 브라우저 안에서 읽고 변환하며, 도구는 파일이나 그 내용을 서버로 보내지 않습니다. 페이지를 닫으면 파일 내용도 사라집니다.

BOM이 무엇이고 꼭 있어야 하나요?

BOM(바이트 순서 표시)은 UTF-8 파일 맨 앞에 붙어 인코딩을 알려 주는 3바이트입니다. 윈도우용 엑셀은 이를 보고 UTF-8 CSV를 올바르게 엽니다. 반대로 많은 프로그램과 데이터베이스, 유닉스 도구는 BOM 없는 파일을 선호하므로 그런 용도에는 UTF-8(BOM 없음)을 고르세요.

변환했는데도 미리보기가 이상해요.

읽는 방식에서 인코딩을 직접 골라 미리보기가 어떻게 바뀌는지 보세요. 파일이 나에게 오기 전에 이미 잘못 저장돼서 한글이 물음표로 바뀌어 있다면 어떤 도구로도 그 글자를 되살릴 수 없습니다.

엑셀에서 숫자 앞의 0이 계속 사라져요.

인코딩 문제가 아니라 엑셀이 숫자처럼 보이는 글자를 숫자로 바꾸는 습관 때문입니다. 엑셀에서 데이터 메뉴의 텍스트/CSV 가져오기를 쓰고, 불러오기 전에 해당 열의 형식을 텍스트로 지정하세요.

얼마나 큰 파일까지 변환되나요?

수 MB 파일은 1초 안팎에 변환됩니다. 아주 큰 파일은 읽고 변환하는 동안 전체 내용을 메모리에 올리기 때문에 기기의 메모리에 따라 달라집니다.