글자가 ''로 깨지는 이유, UTF-8과 EUC-KR 인코딩 차이 완벽 정리

 

 

"", "ȳ\xE7\xCF\xBC\xBC\xBF" 혹시 이런 외계어 보신 적 있나요? 파일을 열거나 웹서핑을 할 때 글자가 깨져 당황하셨던 경험, 다들 있으시죠? 바로 '인코딩' 방식이 맞지 않아 발생하는 문제인데요. 가장 대표적인 UTF-8과 EUC-KR의 차이점부터 글자 깨짐 현상의 원인과 해결법까지 속 시원하게 알려드릴게요!

개발 공부를 막 시작했거나, 웹사이트를 만들거나, 외국어 문서를 다루다 보면 한 번쯤은 '인코딩'이라는 단어와 마주치게 되는데요. 분명 한글로 저장했는데 다시 열어보니 알 수 없는 기호와 문자로 바뀌어 있는 난감한 상황! 저도 처음엔 정말 당황스러웠어요. 대체 컴퓨터는 '가'라는 글자를 어떻게 알아듣길래 이런 일이 생기는 걸까요? 오늘은 컴퓨터가 글자를 이해하는 방식, 인코딩의 세계로 여러분을 안내할게요! 😊

 


인코딩이 뭐길래 글자가 깨질까요? 💻

컴퓨터는 우리가 쓰는 '가', 'A', '😊' 같은 문자를 직접 이해하지 못해요. 오직 0과 1로 이루어진 숫자(바이너리 코드)만 이해할 수 있죠. 그래서 각 문자에 고유한 숫자를 짝지어주는 규칙표가 필요한데, 이 규칙표 또는 변환 과정을 바로 '인코딩(Encoding)'이라고 부릅니다.

반대로 컴퓨터가 가진 숫자 코드를 사람이 읽을 수 있는 문자로 다시 보여주는 과정을 '디코딩(Decoding)'이라고 해요. 글자가 깨지는 현상은 바로 이 인코딩 방식과 디코딩 방식이 일치하지 않을 때 발생합니다. 마치 암호를 만들 때 쓴 규칙과 풀 때 쓴 규칙이 다른 것과 똑같아요!

💡 알아두세요!
- 인코딩: 문자 → 숫자 (컴퓨터가 이해할 수 있도록 변환)
- 디코딩: 숫자 → 문자 (사람이 볼 수 있도록 변환)
글자 깨짐은 A규칙(예: EUC-KR)으로 인코딩된 파일을 B규칙(예: UTF-8)으로 디코딩하려고 할 때 발생합니다.

 

EUC-KR vs UTF-8, 무엇이 다른가요? 🆚

한글 인코딩 방식에서 가장 대표적인 두 가지가 바로 EUC-KR과 UTF-8입니다. 두 방식의 가장 큰 차이점은 표현할 수 있는 문자의 범위와 사용하는 용량에 있어요.

구분 EUC-KR (완성형) UTF-8 (조합형)
문자 범위 한글, 영문, 일부 특수문자만 가능 (2,350자)
‘뷁’, ‘럁’ 등 표현 불가
전 세계 거의 모든 문자 표현 가능
각국 언어, 이모지(😊) 등 포함
용량 한글: 2바이트 / 영문: 1바이트 한글: 3바이트 / 영문: 1바이트 (가변 길이)
특징 과거 국내 표준, 용량이 상대적으로 작음
호환성 문제 발생 가능
현재 웹 표준, 뛰어난 호환성
다국어 환경에 필수적

과거에는 용량을 아끼기 위해 EUC-KR을 많이 사용했지만, 지금은 전 세계적으로 UTF-8 사용이 표준으로 자리 잡았습니다. 다국어 지원과 호환성 면에서 월등하기 때문이죠.

 

글자 깨짐() 현상의 주된 원인 🧐

글자 깨짐 현상은 왜 발생하는 걸까요? 가장 흔한 두 가지 시나리오를 통해 알아볼게요.

사례 1: EUC-KR 문서를 UTF-8로 열었을 때 📝

EUC-KR에서 한글 '가'는 2바이트(B0 A1)로 표현됩니다. 하지만 UTF-8 규칙으로 이 숫자를 해석하려고 하면, 각각의 바이트(B0, A1)에 해당하는 문자를 찾으려고 시도합니다. UTF-8 규칙표에는 이 숫자들에 해당하는 글자가 없거나 엉뚱한 문자가 지정되어 있어, 결국 글자가 깨지거나 '' (대체 문자)로 보이게 됩니다.

사례 2: UTF-8 문서를 EUC-KR로 열었을 때 📝

UTF-8에서 한글 '가'는 3바이트(EA B0 80)로 표현됩니다. 반면 EUC-KR은 한글을 무조건 2바이트 단위로 해석하려고 합니다. 3바이트짜리 정보를 2바이트씩 끊어서 읽으려고 하니 당연히 규칙이 맞지 않고, 전혀 다른 글자로 해석되어 깨져버립니다. 특히 이모지(😊)처럼 EUC-KR에 아예 존재하지 않는 문자는 100% 깨지게 됩니다.

⚠️ 주의하세요!
웹사이트 제작 시 HTML 문서 상단에 `` 코드를 명시하는 것이 매우 중요합니다. 이 코드는 웹 브라우저에게 "이 문서는 UTF-8 규칙으로 해석해주세요!"라고 알려주는 역할을 하여 글자 깨짐을 사전에 방지합니다.

 

간단한 글자 깨짐 해결 방법 🛠️

만약 글자가 깨진 파일을 마주쳤다면 어떻게 해야 할까요? 가장 간단한 방법은 파일의 인코딩 방식을 직접 바꿔주는 것입니다.

  1. 텍스트 편집기 활용: 윈도우 메모장의 경우 '파일 > 다른 이름으로 저장'을 누르면 하단에 인코딩을 선택하는 옵션이 있습니다. 여기서 'UTF-8' 또는 'ANSI'(EUC-KR)를 선택해 다시 저장하면 됩니다. Visual Studio Code 같은 전문 편집기에서는 우측 하단에서 인코딩 방식을 쉽게 변경할 수 있습니다.
  2. 웹 브라우저 설정 변경: 크롬 브라우저의 경우 '도구 더보기 > 인코딩' 메뉴에서 페이지의 인코딩을 직접 변경해 볼 수 있었지만, 최신 버전에서는 자동 감지 기능이 강화되어 해당 메뉴가 사라졌습니다. (필요시 확장 프로그램을 사용할 수 있습니다.)
  3. 온라인 변환 도구 사용: 웹사이트에서 제공하는 무료 인코딩 변환 도구를 사용해 깨진 텍스트를 붙여넣고 원하는 인코딩으로 변환하는 방법도 편리합니다.

 

💡

인코딩 문제 핵심 요약

✨ 인코딩이란?: 문자를 컴퓨터가 이해하는 숫자 코드로 변환하는 규칙이에요.
🆚 EUC-KR vs UTF-8: EUC-KR은 한글 위주, UTF-8은 전 세계 모든 문자를 지원하는 현재의 웹 표준이에요.
🧐 깨짐 원인: 문서를 저장(인코딩)할 때의 규칙과 읽을(디코딩) 때의 규칙이 달라서 발생해요.
🛠️ 해결 방법: 메모장 등 편집기에서 '다른 이름으로 저장'을 통해 인코딩 방식을(주로 UTF-8) 맞춰주면 해결돼요.

자주 묻는 질문 ❓

Q: 그럼 이제 무조건 UTF-8만 쓰면 되나요?
A: 네, 특별한 경우가 아니라면 UTF-8을 사용하는 것이 가장 좋습니다. 특히 웹사이트를 만들거나 여러 국가의 언어를 다룰可能性がある 모든 작업에서는 UTF-8을 표준으로 생각하시는 것이 편리하고 안전합니다. 오래된 관공서 시스템이나 특정 프로그램에서만 EUC-KR을 요구하는 경우가 간혹 있을 수 있습니다.
Q: ANSI, CP949, EUC-KR은 다 다른 건가요?
A: 미묘하게 다르지만, 일반적으로 한글 윈도우 환경에서는 거의 같다고 보셔도 무방합니다. ANSI는 윈도우의 기본 인코딩을 의미하는데, 한글 윈도우에서는 CP949(MS 확장 완성형)를 사용합니다. CP949는 EUC-KR을 확장하여 더 많은 한글과 특수문자를 포함시킨 버전이라 EUC-KR과 거의 호환됩니다. 메모장에서 'ANSI'로 저장하면 CP949 방식으로 저장되는 것입니다.
Q: 이미 깨진 채로 저장된 파일은 복구할 수 없나요?
A: 안타깝게도 한번 잘못된 인코딩으로 저장되어 정보가 손실된(예: '?'로 바뀐) 경우에는 원래대로 복구하기가 거의 불가능합니다. 하지만 원본 파일이 있다면, 파일을 다시 열 때 인코딩 방식을 올바르게 지정하여 열면 깨지지 않은 내용을 볼 수 있습니다.

인코딩, 처음에는 외계어 같고 어렵게 느껴지지만 알고 보면 간단한 '규칙'의 문제랍니다. 이제 글자 깨짐 현상을 만나도 당황하지 않고 자신 있게 해결하실 수 있겠죠? 더 궁금한 점이 있다면 언제든 댓글로 질문해주세요! 😊

댓글

이 블로그의 인기 게시물

전기기능사 필기 기출문제 유형과 공부법

인텔 vs 삼성 vs TSMC, 2나노 파운드리 삼국지... 승자는?

난카이 트로프 지진 발생 가능 시기와 지반 누적 에너지 분석