블로그 목록

ANSI·CP949·EUC-KR·UTF-8 차이와 한글 깨짐을 복구하는 순서

한글이 깨졌다면 파일을 먼저 복사하고 원본 바이트를 수정하지 않은 채 UTF-8, windows-949 계열 디코딩을 차례로 미리 보세요. ANSI는 하나의 고정 인코딩 이름이 아니며, 원문이 이미 ? 또는 �로 치환되어 저장됐다면 잃어버린 바이트는 인코딩 변경만으로 복구할 수 없습니다.

인코딩 오류는 글꼴 문제가 아니라 같은 바이트를 다른 문자표로 해석해서 생깁니다. 보이는 깨진 글자를 다시 저장하기 전에 파일의 바이트가 살아 있는지 판단하는 것이 복구 성공률을 좌우합니다.

먼저 보는 핵심 요약

  • ANSI는 문맥에 따라 운영체제의 현재 코드 페이지를 가리키는 모호한 표현이므로 실제 코드 페이지 번호를 확인해야 합니다.
  • 한국어 레거시 파일은 CP949 또는 EUC-KR 계열일 수 있고 웹 표준 API에서는 표준화된 인코딩 라벨을 사용해야 합니다.
  • 원본 복사본에서 여러 디코딩 결과를 비교하고 한글·기호·숫자가 모두 자연스러운 결과만 UTF-8로 다시 저장합니다.

ANSI는 왜 정확한 인코딩 이름이 아닌가요?

Windows 프로그램에서 ANSI라고 표시한 값은 흔히 시스템의 현재 비유니코드 코드 페이지를 뜻합니다. 한국어 환경에서는 코드 페이지 949일 가능성이 있지만 다른 언어 환경에서는 전혀 다른 문자표일 수 있습니다. 파일 전달 문서에는 ANSI 대신 windows-949, UTF-8처럼 실제 인코딩을 기록해야 재현할 수 있습니다.

CP949와 EUC-KR은 완전히 같은가요?

CP949는 Microsoft의 한국어 코드 페이지이며 통상적인 EUC-KR 범위보다 더 많은 한글 조합을 다루는 구현으로 사용돼 왔습니다. 웹의 WHATWG Encoding 표준은 여러 레거시 라벨을 euc-kr 디코더로 모아 호환되게 처리합니다. 파일 변환 도구가 어떤 라벨과 매핑을 쓰는지 확인하고, 이름만 보고 바이트 호환성을 단정하지 마세요.

UTF-8로 잘못 읽은 레거시 파일은 어떻게 복구하나요?

원본 바이트가 남아 있다면 UTF-8 디코딩 결과와 euc-kr 계열 디코딩 결과를 각각 미리 봅니다. 조사와 받침뿐 아니라 원화 기호, 괄호, 특수문자와 드문 이름도 자연스러운지 비교하세요. 맞는 디코딩을 찾은 뒤에만 유니코드 문자열을 UTF-8 바이트로 새 파일에 저장합니다.

어떤 깨짐은 왜 되돌릴 수 없나요?

디코더가 해석하지 못한 바이트를 대체 문자 �로 바꾸거나 프로그램이 표현할 수 없는 글자를 ?로 저장하면 서로 다른 원문이 같은 문자로 소실됩니다. 이 결과를 덮어쓴 파일에는 원래 바이트를 추론할 정보가 없습니다. 백업, 메일 첨부 원본이나 생성 시스템에서 다시 받아야 합니다.

단계별로 확인하는 방법

  1. 원본 바이트 복사하기

    깨진 파일을 그대로 복제하고 편집기에서 저장하지 않은 원본을 별도로 보관합니다.

  2. 생성 환경 단서 모으기

    파일을 만든 운영체제·프로그램·지역 설정과 전달받은 인코딩 안내를 확인합니다.

  3. 후보 인코딩으로 미리 보기

    UTF-8과 euc-kr 계열을 각각 적용해 한글, 특수문자와 행 구분이 가장 자연스러운 결과를 고릅니다.

  4. 새 UTF-8 파일로 저장하기

    선택한 결과를 새 이름으로 저장하고 �, ?, 누락된 문자와 전체 행 수를 원본과 대조합니다.

판단 기준을 한눈에 비교하기

확인 항목판단 기준
ANSI단일 문자표가 아니라 시스템 코드 페이지를 가리키는 경우가 많아 번호 확인이 필요합니다.
CP949·windows-949Windows 한국어 레거시 코드 페이지를 지칭하며 도구별 라벨 지원을 확인해야 합니다.
EUC-KR한국어 레거시 인코딩 이름으로 웹 표준은 관련 별칭을 하나의 디코더로 처리합니다.
UTF-8유니코드 문자를 가변 길이 바이트로 표현하며 새 데이터 교환의 기본 선택으로 적합합니다.

실행 전 체크리스트

  • 깨진 파일을 저장하기 전에 원본 바이트 복사본을 만들었나요?
  • ANSI라는 표시 대신 실제 코드 페이지나 생성 환경을 확인했나요?
  • 일반 한글뿐 아니라 특수문자와 드문 이름도 미리 봤나요?
  • 변환본에 � 또는 새 물음표가 생기지 않았는지 검색했나요?

주의할 점

인코딩 자동 감지는 통계적 추정일 뿐 확정 판정이 아닙니다. 주민 이름, 계약 내용, 회계 데이터처럼 한 글자 오류가 중요한 파일은 생성 시스템의 인코딩 명세와 원본 레코드를 함께 대조하세요.

함께 보면 좋은 글

자주 묻는 질문

메모장의 ANSI는 항상 CP949인가요?

항상 그렇지 않습니다. 시스템 언어와 비유니코드 프로그램용 코드 페이지에 따라 값이 달라질 수 있습니다. 파일을 만든 환경의 코드 페이지 번호를 확인하세요.

CP949 파일을 euc-kr로 읽으면 모든 한글이 나오나요?

공통 범위는 읽힐 수 있지만 CP949 확장 영역의 문자는 실패하거나 다른 문자로 보일 수 있습니다. 도구가 WHATWG 호환 디코더인지, 엄격한 EUC-KR 구현인지 확인해야 합니다.

깨진 문자열을 복사해서 다시 변환해도 되나요?

복사 과정에서 이미 유니코드 문자로 확정되므로 원본 바이트가 사라질 수 있습니다. 가능하면 깨진 화면의 문자열이 아니라 원본 파일 바이트를 입력으로 사용하세요.

물음표로 바뀐 한글을 자동으로 되살릴 수 있나요?

여러 원문 문자가 같은 물음표로 치환됐다면 정보가 소실되어 정확한 역변환은 불가능합니다. 백업이나 발신자가 가진 원본을 다시 확보해야 합니다.

근거와 출처

도구에서 직접 확인하기

설명한 기준을 실제 값에 적용하려면 EUC-KR(CP949) ↔ UTF-8 변환기에서 작은 샘플부터 확인하세요. 원본과 결과를 나란히 비교한 뒤 실제 사용 환경에 적용하는 순서가 가장 안전합니다.

이 글은 알파카랩스 Utils개발 도구 도구와 함께 보는 정보성 가이드입니다. 규격과 외부 서비스 정책은 바뀔 수 있으므로 중요한 결정 전에는 연결된 공식 출처의 최신 내용을 다시 확인하세요.

무료 도구 둘러보기