검수요청.png검수요청.png

EUC-KR

위키원
이동: 둘러보기, 검색
그림으로 나타낸 EUC-KR 인코딩의 구조

EUC-KR은 KS X 1001와 KS X 1003을 사용하는 8비트 문자 인코딩, EUC의 일종이며 대표적인 한글 완성형 인코딩이기 때문에 보통 완성형이라고 불린다.

EUC-KR 인코딩은 다음과 같이 구성된다.

  • 128보다 작은 바이트에 KS X 1003을 배당한다.
  • 128보다 크거나 같은 바이트에 KS X 1001을 배당한다. 각 글자는 행과 열에 128을 더한 코드값을 사용하여 2바이트로 표현된다.

따라서 KS X 1001의 40-27에 배당된 "위"라는 글자는 EUC-KR에서 C0 A7라는 바이트 열로 표현된다.

KS X 1001에는 한글 채움 문자를 사용하여 규격의 문자 집합에 포함되지 않은 한글을 표현하는 확장 방법이 있지만, 대부분의 경우 이 방법은 EUC-KR에서 사용되지 않고 대신 CP949(코드 페이지 949)와 같은 다른 방법을 사용하여 KS X 1001 바깥의 현대 한글을 표현한다.

개요[편집]

EUC-KR은 대한민국의 산업표준 KS X 1001 (이전 명칭: KS C 5601)을 기반으로 하는 문자 인코딩 방식이다. EUC 계열 인코딩 중 하나로서, 한국어 환경에서 널리 사용되었으며, 대표적으로 웹 페이지, 이메일, 텍스트 파일 등에서 적용되었다. 유니코드(Unicode)가 보편화되기 전까지 한국어 디지털 문서 교환의 실질적인 표준 역할을 했다.

  • 정식 명칭: Extended Unix Code for Korean
  • 약어: EUC-KR
  • 기반 표준: KS X 1001 (KS C 5601), KS X 1003 (US-ASCII)
  • 출시 시기: 1980년대
  • 주요 사용처: 웹 페이지 인코딩, 이메일, 텍스트 파일, 초기 윈도우 및 리눅스 한국어 환경

역사 및 개발 배경[편집]

개발 배경[편집]

한국어는 표음문자(한글)와 표의문자(한자)가 혼용되는 언어다. ASCII(미국 표준 문자 집합)만으로는 한국어를 표현할 수 없었기 때문에 다국어 처리 필요성이 대두되었다. EUC-KR은 이러한 요구에 맞춰 개발된 인코딩 방식으로, 한글 및 한자를 포함한 한국어 문자 세트를 효과적으로 표현하기 위해 설계되었다.

주요 역사[편집]

  • 1987년: KS C 5601:1987 (현 KS X 1001:1992) 표준 제정
  • 1990년대: UNIX 및 초기 Windows 운영 체제에서 광범위하게 채택
  • 2000년대 초반: 인터넷 초창기 웹사이트 다수가 EUC-KR을 기본 인코딩으로 사용
  • 2000년대 중후반 이후: UTF-8유니코드로 점차 대체

국제 표준과의 관계[편집]

EUC-KR은 ISO/IEC 2022 호환 인코딩 방식이다. 국제적으로 EUC-CN(중국), EUC-JP(일본)과 함께 다국어 처리를 위한 표준 인코딩으로 사용되었다.

그러나 유니코드의 등장으로 다국어 인코딩 방식이 단일화되면서 EUC-KR의 활용도는 점차 감소하였다.

인코딩 구조[편집]

기본 구조

EUC-KR은 기본적으로 멀티바이트 인코딩이다.

  • ASCII 문자(영문 및 숫자): 1바이트 (7비트)
  • 한글 및 한자 등 한글 완성형 문자: 2바이트
  • ASCII 영역
  • 범위: 0x00 ~ 0x7F
  • 영어, 숫자, 특수문자 등
  • KS X 1001 영역 (한글 완성형)
  • 첫 번째 바이트: 0xA1 ~ 0xFE
  • 두 번째 바이트: 0xA1 ~ 0xFE
  • 총 2,350자의 한글 음절 + 4,888자의 한자 + 기호 포함
한글 완성형

EUC-KR은 "완성형" 인코딩 방식을 채택하고 있다. 즉, 모든 한글 음절이 이미 조합되어 있는 형태로 정의되어 있다.

  • 예: "가"는 초성(ㄱ) + 중성(ㅏ) 조합이지만 EUC-KR에서는 단일 코드 포인트로 존재한다.
비표준 확장

일부 소프트웨어 및 플랫폼에서는 KS X 1001에 정의되지 않은 사용자 정의 문자 영역(PUA) 또는 비표준 확장을 사용하기도 했다. 대표적인 예로 Windows-949(확장 완성형, CP949) 가 있으며, EUC-KR의 범위를 확장하여 추가 한글 음절과 기호를 지원한다.

주요 특징[편집]

구분 설명
인코딩 방식 멀티바이트 (ASCII: 1바이트, 한글/한자: 2바이트)
문자 세트 KS X 1001 기반 완성형 한글, 한자, 기호
호환성 유닉스, 리눅스, 윈도우 등 다양한 플랫폼
확장성 한정적 (유니코드에 비해 부족)
표현력 약 2,350자 한글 음절 지원 (초성, 중성, 종성을 조합하지 않고 완성형으로 표현)

사용 예시[편집]

웹 페이지

초기 한국어 웹사이트들은 대부분 EUC-KR을 기본 인코딩으로 사용했다.

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
이메일

SMTP를 통해 텍스트를 전송할 때 EUC-KR로 인코딩하여 한국어 메일을 송수신하였다.

텍스트 파일

MS-DOS, Windows 초기 버전의 한국어 환경에서 EUC-KR 인코딩이 사용되었으며, Notepad와 같은 기본 텍스트 에디터에서도 지원되었다.

한계와 문제점[편집]

문자 집합의 한계

EUC-KR은 KS X 1001 표준을 기반으로 하기 때문에 현대 한국어에서 사용되는 모든 한글을 완벽히 표현하지 못한다. 특히, 고어, 방언, 학술적 용어 등에서 필요한 조합형 한글은 표현 불가능하다.

다국어 지원의 한계

한국어 외 다른 언어 지원이 제한적이기 때문에 다국어 환경에서 사용하기 어렵다. 영어와 한국어 이외 언어를 혼합하는 경우 문자 깨짐 현상이 발생할 수 있다.

유니코드 전환의 필요성

웹, 모바일 등 다양한 플랫폼이 등장하면서 유니코드(특히 UTF-8)의 보편화가 진행되었고, EUC-KR은 점차 구식 인코딩으로 간주되었다.

현대적 활용 및 유산[편집]

레거시 시스템

오늘날에도 일부 레거시 시스템에서는 EUC-KR이 사용된다.

  • 오래된 웹사이트
  • 산업용 기기
  • 오래된 데이터베이스 및 ERP 시스템
웹사이트 호환성 유지

과거에 작성된 웹 페이지나 이메일을 정확히 표시하기 위해 브라우저 및 이메일 클라이언트는 여전히 EUC-KR을 지원한다.

EUC-KR ↔ UTF-8 변환 도구

현재는 대부분 UTF-8 인코딩이 표준이지만, EUC-KR로 저장된 파일이나 데이터베이스를 UTF-8로 변환하는 도구와 라이브러리가 존재한다.

  • iconv
  • nkf
  • Python, JavaScript 등 다양한 언어의 내장 인코딩 기능

관련 표준 및 인코딩 비교[편집]

인코딩 방식 특징 한국어 지원 여부
EUC-KR 완성형 한글, 멀티바이트 인코딩
CP949 (Windows-949) EUC-KR 확장판, 추가 한글 지원
UTF-8 유니코드 인코딩, 전 세계 문자 지원
UTF-16 유니코드 인코딩, 다국어 지원, 고정폭
ASCII 영문 전용

기술적 분석[편집]

바이트 패턴

EUC-KR은 바이트 값의 범위에 따라 문자의 종류를 구분한다.

바이트 범위 의미
0x00–0x7F ASCII 문자
0xA1–0xFE 한글, 한자, 기호 등 KS X 1001 문자
가변 길이 인코딩

문자에 따라 1바이트 또는 2바이트를 사용하는 가변 길이 인코딩 방식이다. 이는 메모리 효율성 측면에서는 장점이지만, 문자열 처리 시 복잡성을 증가시킨다.

호환성

EUC-KR은 EUC-JP, EUC-CN과 구조적으로 유사하여 다국어 환경에서

참고자료[편집]

  • "EUC-KR", 《위키백과》

같이 보기[편집]


  검수요청.png검수요청.png 이 EUC-KR 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.