Techganum

AI와 기술을 쉽게, 생활에 바로 쓰는 방법

CSV 한글 깨질 때 인코딩과 코드 앞자리 0 따로 확인하는 방법

Techganum

CSV의 한글 인코딩과 코드 열 형식을 분리해 보는 안내 카드

CSV를 열었는데 한글이 깨지거나 코드 앞의 0이 사라진다면 둘을 같은 문제로 고쳐서는 안 됩니다. 한글은 파일을 어떤 문자 인코딩으로 읽었는지, 앞의 0은 해당 열을 숫자로 자동 변환했는지에 따라 원인이 달라집니다. 먼저 원본 CSV를 복사해 두고, 깨진 상태에서 그대로 저장하지 않은 채 인코딩과 열 형식을 나눠 확인하세요.

먼저 증상부터 나눠보세요

한글이 알아보기 어려운 문자로 보인다면 파일 인코딩을 먼저 확인합니다. 반대로 한글은 정상인데 00123이 123으로 바뀌었다면 코드 열이 숫자로 자동 변환됐는지를 봐야 합니다. 메모 속 쉼표 때문에 열이 하나 더 생겼다면 인코딩이나 숫자 형식이 아니라 CSV 구분 규칙을 확인해야 합니다.

예를 들어 원본 CSV 한 행이 홍길동,00123,”서울, 강남”처럼 되어 있다고 가정해 보겠습니다. Excel에서 잘못 읽으면 이름은 깨지고, 00123은 123으로 바뀌고, 메모 속 쉼표 때문에 열이 하나 더 생길 수도 있습니다. 한 파일에서 동시에 나타나더라도 원인은 각각 인코딩, 데이터 형식, 구분자 처리로 다릅니다.

  • 한글이 깨짐 → UTF-8·CP949 등 파일 인코딩 확인
  • 00123이 123으로 바뀜 → 숫자 자동 변환과 열 형식 확인
  • 쉼표 때문에 열이 갈라짐 → 구분자와 따옴표 처리 확인

우편번호·상품코드·회원번호처럼 앞자리 0까지 값의 일부라면 계산용 숫자가 아니라 텍스트로 다루는 편이 맞습니다. Microsoft도 앞자리 0을 유지해야 하는 데이터는 텍스트로 처리하도록 안내합니다. Microsoft의 앞자리 0 보존 안내에서 같은 내용을 확인할 수 있습니다.

Excel에서는 더블클릭보다 가져오기로 여세요

CSV를 더블클릭해서 열었을 때 한글이 깨지거나 코드의 앞자리 0이 사라진다면 원본을 닫고 다시 가져오는 편이 안전합니다. Excel에서는 데이터 → 텍스트/CSV에서를 선택해 원본 CSV를 불러올 수 있습니다.

  1. Excel에서 빈 통합문서를 엽니다.
  2. 데이터 → 텍스트/CSV에서를 선택하고 원본 CSV를 엽니다.
  3. 미리보기에서 한글이 정상인지 확인합니다. 깨져 있다면 파일 원본 또는 인코딩 항목을 바꿔 원래 한글이 표시되는 값을 찾습니다.
  4. 열이 예상대로 나뉘는지 확인합니다. 쉼표로 구분된 CSV라면 구분자도 함께 확인하세요.
  5. 코드의 앞자리 0을 유지해야 한다면 바로 불러오지 말고 데이터 변환으로 들어갑니다.

Microsoft의 CSV UTF-8 안내에서는 UTF-8 BOM이 포함된 CSV는 Excel에서 일반적으로 열 수 있고, 그렇지 않은 파일은 텍스트/CSV 가져오기 경로를 이용할 수 있다고 설명합니다. 메뉴 이름은 Excel 버전에 따라 조금 다를 수 있으므로 미리보기에서 한글과 열 구성이 맞는지를 기준으로 확인하세요.

00123이 123으로 바뀐다면 자동 변환부터 확인하세요

한글은 정상인데 00123이 123으로 바뀐다면 인코딩 문제가 아니라 숫자 자동 변환 문제일 가능성이 큽니다. 이때 중요한 것은 코드 열이 숫자로 확정되기 전에 텍스트로 가져오도록 설정하는 것입니다.

Power Query는 CSV 같은 파일을 불러올 때 열의 값을 보고 데이터 형식을 자동으로 감지합니다. 숫자처럼 보이는 코드 열이 자동으로 숫자 형식이 되면 앞자리 0이 사라질 수 있습니다. 이미 123으로 변환된 뒤 단순히 열 형식을 텍스트로 바꾸면 “123”이 될 뿐 원래 00123이 저절로 복원되는 것은 아닙니다.

  1. 가져오기 미리보기에서 데이터 변환을 선택해 Power Query 편집기로 들어갑니다.
  2. 앞자리 0을 유지할 코드 열의 머리글을 선택합니다.
  3. 홈 → 데이터 형식 → 텍스트를 선택합니다.
  4. 형식 변경 확인 창이 나오면 현재 열에 변경 내용을 적용합니다.
  5. 00123처럼 원본의 앞자리 0이 유지되는지 확인합니다. 이미 123으로 바뀌어 있다면 이전의 자동 형식 변환 단계에서 0이 제거됐을 수 있으므로 적용된 단계를 확인하거나 원본 CSV를 다시 불러옵니다.
  6. 문제가 없다면 닫기 및 로드로 Excel 시트에 가져옵니다.

Microsoft 공식 안내에서도 Power Query는 CSV와 같은 비정형 데이터의 열 형식을 자동으로 감지하며, 필요하면 열을 선택해 데이터 형식을 텍스트로 지정할 수 있다고 설명합니다.

최신 Excel이라면 자동 데이터 변환 설정도 확인하세요

Microsoft 365용 Excel이나 Excel 2024처럼 자동 데이터 변환 설정을 지원하는 버전에서는 앞자리 0을 제거하고 숫자로 변환하는 기본 동작을 끌 수 있습니다. 이 설정을 꺼두면 00123 같은 값을 숫자 123으로 바꾸지 않고 텍스트로 유지할 수 있습니다.

다만 이 옵션은 모든 Excel 버전에 있는 기능은 아닙니다. 해당 메뉴가 없다면 텍스트/CSV 가져오기와 Power Query에서 열 형식을 직접 지정하는 방법을 사용하세요.

한글이 깨진다면 인코딩을 확인하세요

한글이 깨지는 경우에는 파일을 어떤 인코딩으로 읽고 있는지가 중요합니다. UTF-8, UTF-8 BOM, CP949처럼 저장 방식이 다르면 같은 한글도 프로그램에서 다르게 보일 수 있습니다.

원본을 보존한 상태에서 텍스트/CSV 가져오기 화면의 파일 원본 또는 인코딩 항목을 바꿔 보세요. 한글이 정상적으로 보이고 열 구성이 원본과 맞는 값을 선택하면 됩니다. BOM이 없다는 이유만으로 CP949라고 단정하거나, 한글이 깨진 상태에서 곧바로 다시 저장하는 것은 피하세요.

파일을 만든 프로그램이나 시스템을 알고 있다면 어떤 인코딩으로 내보냈는지 확인하는 것도 도움이 됩니다. 여러 사람이 주고받는 CSV라면 다음부터는 저장 인코딩을 함께 알려두면 같은 문제가 반복되는 것을 줄일 수 있습니다.

UTF-8 BOM 사본이 필요한 경우

원본이 UTF-8인데 특정 Excel 환경에서 더블클릭할 때만 한글이 깨진다면 원본을 그대로 보존하고 UTF-8 BOM 형식의 별도 사본을 만들어 전달하는 방법을 검토할 수 있습니다. 받는 사람이 텍스트/CSV 가져오기에서 인코딩을 직접 선택할 수 있다면 원본을 그대로 사용하는 방법도 있습니다.

반대로 원본이 CP949라면 파일 앞에 BOM만 덧붙이는 방식으로 UTF-8 파일이 되는 것은 아닙니다. 원래 인코딩으로 파일을 정상적으로 읽은 뒤 UTF-8 계열로 다시 저장해야 합니다. 깨진 상태에서 덮어쓰면 원래 문자열을 잃을 수 있으므로 원본과 변환 사본은 따로 보관하세요.

쉼표 때문에 열이 갈라진다면 다른 문제입니다

한글도 정상이고 앞자리 0도 남아 있는데 메모 속 쉼표 때문에 열이 하나 더 생긴다면 인코딩 문제가 아닙니다. CSV에서는 쉼표가 열을 나누는 구분자로 쓰이기 때문에 값 안에 쉼표가 포함될 때는 따옴표 처리까지 함께 맞아야 합니다.

예를 들어 메모 값이 서울, 강남이라면 CSV 안에서는 보통 “서울, 강남”처럼 하나의 값이라는 표시가 필요합니다. 가져오기 미리보기에서 예상한 열 개수가 유지되는지 확인하세요. 세 열이어야 하는 파일이 네 열로 갈라진다면 인코딩을 바꾸기 전에 구분자와 따옴표 해석부터 살펴봐야 합니다.

이미 123으로 저장했다면 원본부터 찾으세요

CSV를 잘못 열린 상태에서 보기만 했다면 원본을 닫고 다시 가져오면 해결할 수 있습니다. 하지만 00123이 123으로 바뀐 상태에서 CSV를 다시 저장했다면 새 파일에는 원래 앞자리 0 정보가 남아 있지 않을 수 있습니다. 이 경우 열 형식을 텍스트로 바꾸는 것만으로 00123을 자동 복원할 수는 없습니다.

한글이 깨진 상태에서 덮어쓴 경우도 마찬가지입니다. 이메일 첨부파일, 처음 다운로드한 파일, 클라우드에 남은 이전 사본처럼 원본이 있는지 먼저 확인하세요. 원본이 없다면 다른 데이터와 대조해 원래 값을 다시 확인해야 합니다.

정리하면 한글이 깨지는 문제는 인코딩, 앞자리 0이 사라지는 문제는 숫자 자동 변환과 열 형식, 열이 갈라지는 문제는 CSV 구분 규칙으로 나눠 보는 것이 핵심입니다. 한 가지 설정으로 세 문제를 한꺼번에 고치려 하지 말고, 원본 CSV를 남겨둔 상태에서 각 원인을 따로 확인하세요.