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", 《위키백과》
같이 보기[편집]