계산 방법
이 도구는 파일의 바이트를 순서대로 검사합니다.
- BOM 확인 — 파일 맨 앞 3바이트가
EF BB BF면 UTF-8(BOM),FF FE/FE FF면 UTF-16입니다. BOM이 있으면 엑셀은 인코딩을 정확히 인식합니다. - UTF-8 엄격 디코딩 — BOM이 없으면 UTF-8 규칙으로 한 글자씩 해석합니다. 규칙 위반이 하나도 없으면 UTF-8(BOM 없음)입니다. 이 경우가 "쇼핑몰에서 받았는데 엑셀에서 깨지는" 전형적인 파일입니다.
- CP949 시도 — UTF-8이 아니면 한국어 윈도우 기본 인코딩인 CP949로 해석합니다. 브라우저의
euc-kr디코더는 확장 완성형(CP949) 8,822자를 모두 포함합니다. - 변환 — 어떤 인코딩이었든 텍스트를 UTF-8로 다시 쓰고 앞에 BOM을 붙입니다. 엑셀·구글 시트·웹 업로드 모두에서 같은 글자로 보이게 됩니다.
구분자(쉼표·탭·세미콜론)는 PapaParse가 첫 행들을 보고 자동 판별합니다. 셀 값은 바꾸지 않습니다 — 숫자 형식, 날짜, 따옴표를 그대로 둡니다.
예시
| 상황 | 감지 결과 | 받을 파일 |
|---|---|---|
스마트스토어 주문 CSV를 엑셀로 열었더니 이름이 ????? | UTF-8 (BOM 없음) | UTF-8(BOM) CSV → 엑셀에서 정상 |
엑셀에서 저장한 CSV를 구글 시트·택배사 사이트에 올리니 뷁뷁 | CP949 / EUC-KR | UTF-8(BOM) CSV → 양쪽 모두 정상 |
주문번호 202609060001234가 엑셀에서 2.02609E+14로 표시 | 인코딩 무관 | .xlsx (모든 셀 문자열 저장) |
흔한 실수와 주의
- 엑셀에서 "다시 저장"하면 되돌아갑니다. UTF-8(BOM) CSV를 엑셀에서 열고 저장 시 "CSV(쉼표로 분리)"를 고르면 다시 CP949가 됩니다. "CSV UTF-8(쉼표로 분리)"을 선택하세요.
- 깨진 글자를 "복구"하는 게 아닙니다. 이미 잘못된 인코딩으로 저장돼
?로 바뀐 글자는 원본 정보가 사라진 것이라 복구할 수 없습니다. 원본 파일을 다시 내려받아 이 도구로 변환하세요. - 구분자가 한 셀에 몰리는 문제는 인코딩이 아니라 지역 설정(세미콜론 구분) 문제입니다. 미리보기에서 열이 1개로 보이면 이 경우입니다.
- 개인정보(고객 이름·전화·주소)가 담긴 파일도 안전하게 처리할 수 있지만, 변환된 파일을 어디에 저장·전달하는지는 개인정보보호법상 처리자(판매자)의 책임입니다.
자주 묻는 질문
파일이 서버에 업로드되나요?
아니요. 파일은 브라우저 메모리에서만 읽고 변환합니다. 개발자 도구의 네트워크 탭을 열어 보면 업로드 요청이 전혀 없는 것을 확인할 수 있습니다. 페이지를 닫으면 데이터도 사라집니다.
왜 엑셀에서만 한글이 깨지나요?
한국어 윈도우의 엑셀은 BOM(바이트 순서 표식)이 없는 CSV를 CP949(EUC-KR)로 가정해서 엽니다. 쇼핑몰이나 웹 시스템은 대개 BOM 없는 UTF-8로 내보내기 때문에 서로 규칙이 어긋나 글자가 깨집니다. 파일 자체는 손상되지 않았습니다.
UTF-8(BOM) CSV와 .xlsx 중 무엇을 받아야 하나요?
다른 시스템(택배사·회계 프로그램)에 다시 올릴 파일이면 CSV(UTF-8 BOM)를, 사람이 엑셀로 열어 볼 파일이면 .xlsx를 권합니다. .xlsx는 모든 셀을 문자열로 저장해 주문번호가 1.23E+11로 바뀌거나 전화번호 앞자리 0이 사라지는 문제도 함께 막습니다.
반대로 UTF-8 파일을 CP949로 바꿔야 하는 경우도 있나요?
오래된 업무 프로그램이 CP949만 받는 경우가 있습니다. 그 경우 이 도구로 먼저 .xlsx로 저장한 뒤 엑셀에서 "CSV(쉼표로 분리)"로 다시 저장하면 CP949 파일이 됩니다. 별도 CP949 출력 옵션은 준비 중입니다.
큰 파일도 되나요?
50MB까지 처리합니다. 브라우저 메모리에서 동작하므로 그 이상은 파일을 나눠서 올려 주세요. 행 수 제한은 없지만 미리보기는 첫 20행만 표시합니다.