GUIDE / CSV

CSV 인코딩과
따옴표 이해하기

한글이 깨지는 문제와 열이 어긋나는 문제는 원인이 다를 수 있습니다. 먼저 파일 형식을 확인하고, 인코딩과 구분 규칙을 따로 점검해 보세요.

1. CSV와 XLSX는 다른 파일

CSV는 셀 값을 텍스트로 표현한 형식입니다. 문서정리365에서는 쉼표로 열을 구분하고 줄바꿈으로 행을 구분하는 CSV를 읽습니다. 시트 여러 개, 셀 색상, 병합, 수식 계산 결과를 따로 보관하는 XLSX와는 다릅니다. XLSX 파일의 이름을 ‘.csv’로 바꿔도 CSV가 되지 않습니다.

스프레드시트에서 CSV로 내보낼 때는 현재 시트만 저장될 수 있고, 서식이나 수식 정보가 사라질 수 있습니다. 원본 XLSX를 별도로 남긴 뒤 데이터 확인용 사본을 만드세요. 이 서비스는 XLSX를 열거나 변환하지 않습니다.

2. UTF-8로 저장하고 확인하기

인코딩은 문자를 바이트로 표현하는 규칙입니다. 같은 한글도 UTF-8과 CP949/EUC-KR에서는 다른 바이트로 저장됩니다. CSV라는 확장자만으로 인코딩을 알 수는 없습니다. 이 미리보기는 UTF-8만 해석하며 잘못된 UTF-8 바이트를 발견하면 오류를 표시합니다.

  1. 원본을 만든 프로그램에서 ‘다른 이름으로 저장’ 또는 ‘내보내기’를 엽니다.
  2. 형식 목록에 ‘CSV UTF-8’이 있으면 선택합니다. 메뉴 이름은 제품과 버전에 따라 다릅니다.
  3. 선택한 시트, 구분자가 쉼표인지, 저장 인코딩이 UTF-8인지 확인합니다.
  4. 새 파일을 텍스트 편집기나 이 미리보기로 열어 한글과 행 구조를 확인합니다.

‘ANSI’나 단순히 ‘CSV’라고만 표시된 저장 옵션은 환경에 따라 CP949 등 다른 인코딩일 수 있습니다. 원본을 열 수 있는 프로그램에서 UTF-8로 다시 저장하는 편이 안전합니다. 이미 잘못 읽힌 글자를 그대로 저장하면 복구되지 않을 수 있으므로, 깨진 사본이 아니라 원본에서 시작하세요.

BOM은 무엇인가요?

일부 프로그램은 UTF-8 파일 맨 앞에 BOM(바이트 EF BB BF)을 붙입니다. 이 도구는 맨 앞의 BOM 하나를 제거하고 읽습니다. BOM이 없어도 올바른 UTF-8이면 열 수 있습니다. BOM 지원이 인코딩 자동 감지를 뜻하지는 않습니다.

3. 쉼표와 따옴표 규칙

셀 안에 쉼표나 줄바꿈이 있으면 셀 전체를 큰따옴표로 감쌉니다. 셀 안의 큰따옴표 한 개는 큰따옴표 두 개로 표현합니다. 백슬래시로 따옴표를 피하는 방식은 이 CSV 파서에서 지원하지 않습니다.

이름,메모,수량
사과,"빨강, 초록",2
배,"첫 번째 줄
두 번째 줄",1
귤,"""신선"" 표시",3

위 예시는 제목 행까지 포함해 4행입니다. 배의 메모 안에 있는 줄바꿈은 새 행이 아니라 같은 셀의 내용입니다. 귤의 메모는 "신선" 표시로 표시됩니다. 가,,다,처럼 연속 쉼표나 마지막 쉼표가 있으면 빈 셀도 유지합니다.

닫는 따옴표 바로 다음에는 쉼표, 줄바꿈 또는 파일 끝만 올 수 있습니다. "가" ,나처럼 닫는 따옴표 뒤에 공백을 넣는 형식도 이 도구에서는 오류입니다. 엄격한 규칙으로 잘못된 구조를 조용히 읽어 버리는 일을 피합니다.

4. 오류를 확인하는 순서

  1. 형식과 용량: 실제 텍스트 CSV인지, 확장자가 .csv인지, 2 MiB(2,097,152바이트) 이하인지 확인합니다. 확장자는 대소문자를 구분하지 않습니다.
  2. 인코딩: UTF-8 오류가 나면 원본 프로그램에서 UTF-8로 새 사본을 저장합니다. 자동으로 다른 인코딩을 추측하지 않습니다.
  3. 구분자: 모든 값이 한 열로 보이면 세미콜론이나 탭으로 나뉜 파일인지 확인합니다. 이 도구는 쉼표만 구분자로 사용합니다.
  4. 따옴표: 닫히지 않은 따옴표, 셀 중간의 따옴표, 닫는 따옴표 뒤의 문자가 있는지 확인합니다. 오류 위치는 디코딩된 텍스트의 UTF-16 위치 근사값이며 행·바이트 번호가 아닙니다.
  5. 열 개수: 행마다 열 수가 다르면 경고합니다. 누락된 값일 수도, 쉼표를 따옴표로 감싸지 않은 실수일 수도 있으므로 원본과 비교합니다.

5. 미리보기의 범위와 안전 주의

전체 파일을 파싱해 전체 행 수와 열 수 범위를 계산하지만, 표는 처음 100행까지만 표시합니다. 제목 행도 100행에 포함됩니다. 표는 처음 100열까지만 표시하며 전체 열 수 범위는 요약에 따로 보여 줍니다. 파일 끝의 단순 줄바꿈은 추가 행으로 세지 않으며, 실제 빈 행은 빈 셀 한 개를 가진 행으로 읽습니다. 화면상의 세로 줄 수와 데이터 행 수가 항상 같은 것은 아닙니다.

값은 문자열로만 표시합니다. 앞의 0을 지우거나 날짜로 바꾸지 않고, HTML과 수식도 실행하지 않습니다. 다만 값을 다른 스프레드시트에 옮겨 넣으면 =, + 등으로 시작하는 값이 수식으로 해석될 수 있습니다. 출처가 불분명한 CSV는 다른 프로그램에서도 안전하게 다루세요.

2 MiB 제한은 장치 자원을 보호하기 위한 기준이지 모든 형태의 파일을 빠르게 보여 준다는 보장은 아닙니다. 한 행에 매우 많은 열이 있으면 표가 느릴 수 있습니다. 이 도구는 편집기나 대용량 데이터 처리 프로그램을 대신하지 않습니다.

CSV 미리보기 도구 사용하기