뿌리깊은개발

한글문자코드(문자집합)와 인코딩

Jack Moon 2012. 8. 16. 11:49

euc-kr, urf-8, unicode, cp949 등등... 한글 문자코드와 인코딩에 대해 정리해 보고자 한다. wiki를 참조하였음을 밝힌다.

 

현재 대한민국에서 사용되는 한글문자집합은 딱 두개이다.
KS X 1001, 유니코드

 

KS X 1001

 

KS X 1001은 한국 산업 규격으로 지정된 한국어 문자 집합으로서, 정식 규격명은 ‘정보 교환용 부호계 (한글 및 한자)’이며, 옛 이름인 KS C 5601로도 알려져 있다. 1974년에 처음으로 제정되었고, 2004년에 개정된 ‘KS X 1001:2004’가 최신 규격이다.

이 규격은 2바이트 부호계로서, 0x2121 - 0x7E7E까지 영역에서 8,836문자의 표현을 규정한다.

 

        0x21-----------0x7E
0x21
.
.
.
0x7E

             (94*94 = 8,836)

 

0x21 ~ 0x2C: 특수 문자(문장 부호, 그림 문자 등), 한글 낱자, 괘선 조각, 외국 문자(히라가나, 가타카나, 그리스 문자, 키릴 문자 등)
0x30 ~ 0x48: 한글 글자 마디 영역. 자주 쓰이는 2350자만 가나다 순서대로 배열했다.
0x49: 사용자 정의 영역 A
0x4A ~ 0x7D: 한자 영역. 4888자를 한글 독음 순서대로 배열했으며, 독음이 다르고 모양이 같은 한자는 중복되어 있다.
0x7E: 사용자 정의 영역 B

 

단점
KS X 1001에 모든 현대 한글을 표현할 수 있는 방법이 존재하는데도 대부분의 프로그램들이 구현하지 않고 있다. 따라서 KS X 1001은 사실상 2350자의 한글만 지원된다.

 

인코딩
KS X 1001 기반의 문자 인코딩으로는 EUC-KR(완성형)과 ISO-2022-KR (과거 인터넷 메일에서 쓰던 문자 인코딩)이 있다. MS 윈도에서 사용하는 CP949은 EUC-KR의 확장으로 2바이트로 표현할 수 없는 한글 글자 마디 8,822자를 추가한 것이다.

 


유니코드


전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이며, 유니코드 협회(Unicode Consortium)가 제정한다. 유니코드 테이블은 정의가 완료된 상태가 아니며, 앞으로도 계속 크기가 커질것이다. (www.unicode.org에서 계속 작업중)

 

인코딩  UTF8, UTF16, UTF16-BE, UTF16-LE, UCS2, UCS4


UCS2, UTF16 계열은 모든 문자를 2바이트(16비트)로 인코딩한다. 초창기 유니코드를 프로그래밍한다 하면 대부분 이 인코딩을 말한다.
UCS4는 유니코드 문자를 4바이트로 인코딩한다. 현존하는 모든 문자를 표현할 수 있지만, 메모리 및 네트웍 트래픽, 데이터의 낭비가 너무 심하다.
UTF-8 (가변길이의 인코딩) 은 기존의 아스키 문자열을 그대로 1바이트로 표기한다. 그보다 큰 코드포인트의 문자들은 그 범위에 따라 각각 2바이트, 3바이트, 4바이트로 인코딩될 수 있다. 한글은 대부분 UTF-8 인코딩으로 3바이트로 표현된다.

 

 

'뿌리깊은개발' 카테고리의 다른 글

전통의 코드 ASCII  (0) 2012.08.17
순서도 해답  (0) 2012.08.17
순서도  (0) 2012.08.17