글자가 깨져 보일 때 — 인코딩 깨짐의 원인과 해결
다운로드한 파일을 열었더니 ë©ì¶• 같은 외계어가 가득하거나, 엑셀에서 CSV를 열었더니 한글이 전부 깨져 있던 경험, 한 번쯤 있을 겁니다. 글자가 망가진 게 아니라 잘못 해석된 것이라서, 원리를 알면 대부분 복구할 수 있습니다.
왜 깨질까 — 인코딩이라는 약속
컴퓨터는 글자를 저장하지 못합니다. 숫자만 저장하죠. 그래서 "어떤 숫자가 어떤 글자인가"라는 약속이 필요한데, 이것이 인코딩입니다.
- UTF-8 — 전 세계 문자를 표현하는 현재의 표준. 웹·모바일·최신 프로그램 대부분이 사용합니다.
- EUC-KR(CP949) — 한국어 윈도우에서 오래 쓰여 온 한글 인코딩. 옛날 프로그램·일부 엑셀 동작에 남아 있습니다.
깨진 모양으로 원인 추측하기
ë©ì¶•처럼 라틴 특수문자 범벅 — UTF-8 문서를 다른 인코딩으로 읽은 전형적인 모양입니다.?????물음표 연속 — 변환 과정에서 표현할 수 없는 글자가 이미 물음표로 바뀐 경우. 이건 복구가 안 되니 원본 파일을 다시 받아야 합니다.µ¶¸³같은 한자·기호 섞임 — EUC-KR 문서를 다른 인코딩으로 읽었을 때 흔한 모양입니다.
상황별 해결법
- 텍스트 파일(메모장): 메모장에서 파일 열기 대화상자의 '인코딩'을 UTF-8 ↔ ANSI로 바꿔 가며 열어 봅니다. 제대로 보이는 인코딩을 찾으면 '다른 이름으로 저장'에서 UTF-8로 다시 저장하세요.
- 엑셀 CSV: '데이터 > 텍스트/CSV 가져오기'에서 파일 원본을 'UTF-8'로 지정해 불러오거나, 메모장에서 'UTF-8(BOM)'으로 재저장 후 엽니다.
- 자막(smi·srt) 파일: 메모장에서 올바른 인코딩으로 연 뒤 UTF-8로 재저장하면 플레이어에서 정상 표시됩니다.
- 웹페이지 제작 중이라면: HTML에
<meta charset="utf-8">를 선언하고 파일도 UTF-8로 저장해 둘을 일치시킵니다.
%ED%95%9C — URL 인코딩은 깨진 게 아니다
링크를 복사하면 %ED%95%9C%EA%B8%80 같은 코드가 보이는데, 이건 깨진 글자가 아니라 URL 인코딩(퍼센트 인코딩)입니다. 주소에는 한글을 직접 쓸 수 없어 UTF-8 바이트를 %XX 형태로 표기한 것뿐입니다. 디코더에 붙여 넣으면 원래 글자로 바로 확인할 수 있습니다.
저장할 때 쓴 인코딩과 읽을 때 쓴 인코딩이 다르기 때문입니다. 컴퓨터는 글자를 숫자로 바꿔 저장하는데, 같은 숫자라도 UTF-8로 읽느냐 EUC-KR로 읽느냐에 따라 다른 글자가 됩니다. 한글 문서를 UTF-8로 저장하고 EUC-KR로 열면 ë©ì¶• 같은 외계어가 되는 식입니다. 글자가 사라진 게 아니라 잘못 해석된 것이라, 올바른 인코딩으로 다시 열면 복구됩니다.
한국어 윈도우의 엑셀이 CSV를 열 때 기본적으로 EUC-KR(CP949) 인코딩을 가정하기 때문입니다. 요즘 웹 서비스가 내려 주는 CSV는 대부분 UTF-8이라 불일치가 생깁니다. 해결법은 두 가지입니다. 파일을 메모장에서 열어 'UTF-8(BOM)'으로 다시 저장한 뒤 엑셀에서 열거나, 엑셀의 '데이터 > 텍스트/CSV 가져오기'에서 파일 원본(인코딩)을 UTF-8로 지정하는 것입니다.
아니요, 정상적인 URL 인코딩(퍼센트 인코딩)입니다. 주소창에는 한글을 그대로 쓸 수 없어서, 한글을 UTF-8 바이트로 바꾸고 각 바이트를 %XX 형태로 표기한 것입니다. 예를 들어 '한'은 %ED%95%9C이 됩니다. 인코더·디코더 도구에 붙여 넣으면 원래 글자로 바로 풀어 볼 수 있습니다.