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 바이트로 새 파일에 저장합니다.
어떤 깨짐은 왜 되돌릴 수 없나요?
디코더가 해석하지 못한 바이트를 대체 문자 �로 바꾸거나 프로그램이 표현할 수 없는 글자를 ?로 저장하면 서로 다른 원문이 같은 문자로 소실됩니다. 이 결과를 덮어쓴 파일에는 원래 바이트를 추론할 정보가 없습니다. 백업, 메일 첨부 원본이나 생성 시스템에서 다시 받아야 합니다.
단계별로 확인하는 방법
- 원본 바이트 복사하기
깨진 파일을 그대로 복제하고 편집기에서 저장하지 않은 원본을 별도로 보관합니다.
- 생성 환경 단서 모으기
파일을 만든 운영체제·프로그램·지역 설정과 전달받은 인코딩 안내를 확인합니다.
- 후보 인코딩으로 미리 보기
UTF-8과 euc-kr 계열을 각각 적용해 한글, 특수문자와 행 구분이 가장 자연스러운 결과를 고릅니다.
- 새 UTF-8 파일로 저장하기
선택한 결과를 새 이름으로 저장하고 �, ?, 누락된 문자와 전체 행 수를 원본과 대조합니다.
판단 기준을 한눈에 비교하기
| 확인 항목 | 판단 기준 |
|---|---|
| ANSI | 단일 문자표가 아니라 시스템 코드 페이지를 가리키는 경우가 많아 번호 확인이 필요합니다. |
| CP949·windows-949 | Windows 한국어 레거시 코드 페이지를 지칭하며 도구별 라벨 지원을 확인해야 합니다. |
| EUC-KR | 한국어 레거시 인코딩 이름으로 웹 표준은 관련 별칭을 하나의 디코더로 처리합니다. |
| UTF-8 | 유니코드 문자를 가변 길이 바이트로 표현하며 새 데이터 교환의 기본 선택으로 적합합니다. |
실행 전 체크리스트
- 깨진 파일을 저장하기 전에 원본 바이트 복사본을 만들었나요?
- ANSI라는 표시 대신 실제 코드 페이지나 생성 환경을 확인했나요?
- 일반 한글뿐 아니라 특수문자와 드문 이름도 미리 봤나요?
- 변환본에 � 또는 새 물음표가 생기지 않았는지 검색했나요?
주의할 점
인코딩 자동 감지는 통계적 추정일 뿐 확정 판정이 아닙니다. 주민 이름, 계약 내용, 회계 데이터처럼 한 글자 오류가 중요한 파일은 생성 시스템의 인코딩 명세와 원본 레코드를 함께 대조하세요.
함께 보면 좋은 글
자주 묻는 질문
메모장의 ANSI는 항상 CP949인가요?
항상 그렇지 않습니다. 시스템 언어와 비유니코드 프로그램용 코드 페이지에 따라 값이 달라질 수 있습니다. 파일을 만든 환경의 코드 페이지 번호를 확인하세요.
CP949 파일을 euc-kr로 읽으면 모든 한글이 나오나요?
공통 범위는 읽힐 수 있지만 CP949 확장 영역의 문자는 실패하거나 다른 문자로 보일 수 있습니다. 도구가 WHATWG 호환 디코더인지, 엄격한 EUC-KR 구현인지 확인해야 합니다.
깨진 문자열을 복사해서 다시 변환해도 되나요?
복사 과정에서 이미 유니코드 문자로 확정되므로 원본 바이트가 사라질 수 있습니다. 가능하면 깨진 화면의 문자열이 아니라 원본 파일 바이트를 입력으로 사용하세요.
물음표로 바뀐 한글을 자동으로 되살릴 수 있나요?
여러 원문 문자가 같은 물음표로 치환됐다면 정보가 소실되어 정확한 역변환은 불가능합니다. 백업이나 발신자가 가진 원본을 다시 확보해야 합니다.
근거와 출처
- WHATWG Encoding Standard — 1차 출처, 조회일 2026-08-30
- Microsoft 코드 페이지 식별자 — 1차 출처, 조회일 2026-08-30
도구에서 직접 확인하기
설명한 기준을 실제 값에 적용하려면 EUC-KR(CP949) ↔ UTF-8 변환기에서 작은 샘플부터 확인하세요. 원본과 결과를 나란히 비교한 뒤 실제 사용 환경에 적용하는 순서가 가장 안전합니다.
이 글은 알파카랩스 Utils의 개발 도구 도구와 함께 보는 정보성 가이드입니다. 규격과 외부 서비스 정책은 바뀔 수 있으므로 중요한 결정 전에는 연결된 공식 출처의 최신 내용을 다시 확인하세요.