Skip to content
FreeConvertter

텍스트 인코딩 쉽게 이해하기 — UTF-8, EUC-KR, BOM

작성일:

컴퓨터는 글자를 그대로 저장하지 못하고 **숫자(바이트)**로 바꿔 저장합니다. 글자를 어떤 숫자로 바꿀지 정한 규칙이 인코딩입니다. 같은 파일이라도 저장할 때와 열 때 쓰는 규칙이 다르면 글자가 깨집니다.

대표적인 인코딩

인코딩 특징 한글 한 글자
ASCII 영어 알파벳·숫자·기호만 표현하는 가장 오래된 규칙 표현 불가
EUC-KR / CP949 한국어 Windows가 오래 써 온 규칙. CP949는 EUC-KR을 넓혀 모든 한글 조합을 담음 2바이트
UTF-8 전 세계 문자를 담는 국제 표준. 웹페이지의 대부분이 사용 3바이트
UTF-16 Windows 내부와 일부 프로그램이 쓰는 유니코드 방식 2바이트

영어 알파벳은 세 방식에서 모두 같은 숫자로 저장되기 때문에, 영어는 멀쩡한데 한글만 깨지는 일이 생깁니다.

BOM이란?

BOM(Byte Order Mark)은 파일 맨 앞에 붙는 작은 표시입니다. UTF-8의 BOM은 EF BB BF 3바이트이며, “이 파일은 UTF-8이다”라는 이름표 역할을 합니다.

  • 장점: 한국어 엑셀이나 오래된 Windows 프로그램이 UTF-8 파일을 올바르게 알아봅니다.
  • 단점: 일부 프로그래밍 도구나 서버 설정 파일에서는 BOM이 맨 앞의 이상한 글자로 취급되기도 합니다.

그래서 엑셀에서 열 CSV에는 BOM을 붙이고, 프로그램이 읽을 파일에는 붙이지 않는 것이 일반적입니다. 이 사이트의 텍스트 출력 변환기들은 옵션에서 BOM 포함 여부를 고를 수 있습니다.

깨진 모양으로 원인 알아내기

깨진 글자의 모양을 보면 어떤 착오가 있었는지 짐작할 수 있습니다.

이렇게 보인다면 원인
안녕, é처럼 라틴 문자가 섞임 UTF-8 파일을 서유럽(Windows-1252) 방식으로 읽음
�가 반복됨 EUC-KR 파일을 UTF-8로 읽음 (해석할 수 없는 바이트)
¾È³ç처럼 기호가 섞임 EUC-KR 파일을 서유럽 방식으로 읽음
깨진 글자가 저장할 때마다 더 길어짐 잘못 읽은 상태로 다시 저장한 경우(이중 인코딩)

중요한 점은, 이 상태로 저장하면 깨진 글자가 그대로 파일에 기록된다는 것입니다. 글자가 깨져 보이면 저장하지 말고 닫으세요.

옛날 한글 텍스트 파일이 많은 이유

2000년대에 만든 TXT 소설, 메모, 자막 파일은 대부분 EUC-KR(CP949)로 저장되어 있습니다. 당시 Windows 메모장의 기본값이었기 때문입니다. 요즘 프로그램과 스마트폰은 UTF-8을 기본으로 쓰므로 이런 파일을 열면 한글이 깨지기 쉽습니다.

이 사이트의 TXT → EPUB, TXT → DOCX, CSV → XLSX 변환기는 파일을 읽을 때 다음 순서로 인코딩을 판별합니다.

  1. 파일 앞에 BOM이 있으면 그 정보를 따릅니다.
  2. UTF-8 규칙에 정확히 맞으면 UTF-8로 읽습니다.
  3. 그렇지 않으면 EUC-KR(CP949), Shift_JIS(일본어), GB18030(중국어), Windows-1251(러시아어) 순서로 시험해 보고, 그 언어의 글자로 자연스럽게 읽히는 것을 고릅니다.
  4. 모두 아니면 서유럽(Windows-1252) 방식으로 읽습니다.

판별이 틀리는 드문 경우를 위해 옵션에서 인코딩을 직접 고를 수도 있습니다.

지금 파일이 어떤 인코딩인지 확인하려면

  • Windows 메모장: 파일을 열면 오른쪽 아래 상태 표시줄에 UTF-8, UTF-8(BOM), ANSI 등이 표시됩니다. 한국어 Windows에서 ANSI는 CP949를 뜻합니다.
  • VS Code: 오른쪽 아래에 인코딩이 표시되고, 눌러서 다른 인코딩으로 다시 열어 볼 수 있습니다.

정리

글자 깨짐은 “저장한 규칙”과 “여는 규칙”이 다를 때 생깁니다. 새로 만드는 파일은 UTF-8로 저장하고, 엑셀용 CSV에는 BOM을 붙이세요. 옛날 EUC-KR 파일은 인코딩을 자동 판별하는 변환기로 UTF-8 문서나 EPUB으로 바꿔 두면 어디서나 깨지지 않습니다.

이 가이드에서 쓰는 도구

관련 가이드