거래처에서 받은 CSV를 열었더니 한글이 ㅁㅁㅁ나 가나 같은 알 수 없는 문자로 보이거나, 한 줄의 내용이 통째로 첫 칸에 몰려 있는 경우가 있습니다. 다시 보내 달라고 하기 전에 알아 둘 점은, 이런 문제는 대부분 파일이 망가진 것이 아니라 읽는 방법이 틀린 것이라는 사실입니다. 시트모아의 CSV 깨짐 수리는 원인을 자동으로 진단해 원래대로 되돌려 줍니다.
증상별 원인
- 한글이 ㅁㅁㅁ처럼 보인다면 EUC-KR 파일을 UTF-8로 읽은 경우입니다.
- 가나처럼 보인다면 반대로 UTF-8 파일을 서양 문자 인코딩으로 읽은 경우입니다.
- 한 줄이 한 칸에 몰렸다면 구분자가 쉼표가 아니라 세미콜론이나 탭인 경우입니다. 유럽 엑셀은 세미콜론으로 저장합니다.
세 경우 모두 바이트 자체는 멀쩡하기 때문에 원래 모습으로 되돌릴 수 있습니다.
복구하는 순서
- CSV 깨짐 수리 페이지에 CSV, TSV, TXT 파일을 끌어다 놓습니다.
- 진단 결과에서 인코딩과 실제 구분자가 무엇으로 판단되었는지 확인하고, 미리보기 (앞 20줄)로 글자와 칸이 제대로 보이는지 봅니다.
- 저장 방법을 고릅니다. 엑셀에서 열 파일이라면 기본으로 켜져 있는 엑셀용 BOM 붙이기를 그대로 두고, 전화번호처럼 앞자리가 0인 번호가 있다면 앞이 0인 번호를 글자로 지키기를 켭니다.
- 파일이 너무 커서 엑셀이 열지 못한다면 나누기에서 줄 수나 용량(MB) 기준을 정한 뒤 저장을 누릅니다.
되살릴 수 없는 것도 있습니다
엑셀이 01012345678을 1012345678로 저장해 버렸다면 앞의 0은 이미 파일에 남아 있지 않습니다. 1.23E+15처럼 지수 형태로 저장된 긴 숫자도 마찬가지입니다. 이 도구는 그런 값을 찾아 알려 주지만, 없는 값을 지어내 채우지는 않습니다. 원본을 다시 받을 수 있다면 받은 파일을 이 도구로 열고 글자로 지키기를 켜서 저장하는 것이 진짜 해결책입니다. 이 옵션을 켜면 엑셀이 번호를 다시 숫자로 바꾸지 않지만, 엑셀이 아닌 다른 프로그램에서는 번호가 등호와 따옴표로 감싼 형태로 보일 수 있다는 점도 기억해 두세요.
고객 명단이 든 CSV라면
파일을 읽고, 고치고, 저장하는 과정이 모두 브라우저 안에서 이루어지며 서버로 업로드되지 않습니다. 브라우저 메모리가 허용하는 만큼 처리할 수 있어 수십만 줄짜리 파일도 다룰 수 있고, 큰 주문 내역이나 고객 명단도 밖으로 내보내지 않고 정리할 수 있습니다.
마무리
깨진 CSV는 다시 받기 전에 먼저 진단해 볼 가치가 있습니다. 읽는 방법만 틀린 파일이라면 원래대로 되돌아오고, 되살릴 수 없는 값은 무엇인지 정확히 알 수 있습니다.