먼저 알아둘 기준
문자 인코딩은 글자를 바이트로 저장하는 규칙입니다. 같은 바이트도 다른 규칙으로 해석하면 한글이 깨집니다. UTF-8은 유니코드 전체를 다루며 웹과 현대 도구에서 널리 사용됩니다.
EUC-KR은 과거 한국어 환경에서 사용된 문자 집합이고 CP949는 Windows에서 확장한 범위입니다. CP949 파일을 EUC-KR로만 읽으면 일부 글자가 해석되지 않을 수 있어 둘을 완전히 같은 이름으로 취급하면 안 됩니다.
UTF-8 BOM은 파일 앞의 짧은 식별 바이트입니다. UTF-8 자체에 필수는 아니지만 일부 스프레드시트 프로그램이 CSV 인코딩을 인식하는 데 도움을 줄 수 있습니다.
실제 작업에서 보는 사례
최신 웹 서비스에서 내려받은 JSON은 보통 UTF-8로 읽습니다.
오래된 Windows 업무 CSV가 UTF-8에서 깨지면 CP949 미리보기를 비교합니다.
한글 CSV를 특정 스프레드시트에서 열 때 깨지면 UTF-8 BOM 결과를 시험합니다.
단계별로 확인하는 방법
- 1
원본 파일을 수정하지 않고 바이트 그대로 선택합니다.
- 2
UTF-8, CP949와 EUC-KR 후보 미리보기를 비교합니다.
- 3
한글뿐 아니라 특수문자, 숫자와 줄바꿈도 정상인지 확인합니다.
- 4
UTF-8 또는 필요한 경우 UTF-8 BOM으로 새 파일을 저장합니다.
한국어 텍스트 인코딩 비교
| 인코딩 | 특징 | 주의할 환경 |
|---|---|---|
| UTF-8 | 유니코드 전체, 웹 표준에 적합 | 일부 구형 프로그램의 자동 인식 |
| EUC-KR | 제한된 한국어 문자 범위 | 확장 한글·기호 손실 가능성 |
| CP949 | EUC-KR을 확장한 Windows 코드 페이지 | 다른 운영체제와 교환할 때 명시 필요 |
| UTF-8 BOM | UTF-8 앞에 식별 바이트 추가 | BOM을 데이터로 오인하는 일부 도구 |
주의할 점
- 깨진 상태로 다시 저장하면 원본 바이트가 바뀌어 나중에 올바른 인코딩으로도 복구하지 못할 수 있습니다.
- 인코딩 이름만 바꾸는 것과 실제 바이트를 변환하는 것은 다릅니다.
기술적 제한
- 바이트 빈도 기반 자동 감지는 짧은 파일과 ASCII 전용 파일에서 인코딩을 확정할 수 없습니다.
- 브라우저 TextDecoder 지원 범위 밖의 인코딩은 별도 라이브러리에 의존하며 구현별 매핑 차이가 있을 수 있습니다.