영어권 문자셋과 인코딩
qASCII
¤1967년에 미국에서 제정됨 (1986년에 마지막 개정)
¤ASCII는 0x00부터 0x7F까지의 총 127개 문자(제어 문자, 특수 문자, 숫자, 알파벳 등)로 이루어져 있다.
qISO-8859
¤ASCII는 미국에서 제정된 표준이니 영어 알파벳을 표현하기에는 큰 문제가 없었겠지만, ß(독일어), ñ(에스파냐어), å(스웨덴어와 북유럽 언어)와 같은 문자를 표현할 수 없어 유럽어에는 사용할 수 없었다.
¤이러한 문제를 해결하기 위해 확장 ASCII(Extended ASCII)를 제정하여 기존의 ASCII로 정의하지 못했던 128번부터 255번까지의 새로운 문자를 정의할 수 있게 되었다. 즉, 새로 추가된 128개의 코드(0x80 ~ 0xFF)로 프랑스어, 독일어 등의 유럽어를 표현할 수 있게 된 것이다. 이와 같이 다양한 유럽어를 표현할 수 있는 확장 ASCII는 ISO-8859 유럽 통일 표준안으로 제정되었다.
¤ISO 8859-1은 서유럽 언어를, ISO 8859-2는 동유럽 언어를 위한 표준이며
ISO 8859-16까지 다양한 버전이 있음.
ISO 8859-16까지 다양한 버전이 있음.
q참고자료
한글 문자셋과 인코딩
q80년대부터 한글을 처리하기 위한 다양한 방법들이 발전해 왔음
q현재는 KSC5601, EUC-KR, MS949, UNICODE 정도만 사용됨
qKSC5601 (정식명칭 : KS X 1001 )
¤1987년에 표준안 채택, 대표적인 한글완성형 코드
¤0xA1A1부터 0xFEFE까지의 영역(94x94, 8,836글자할당)
¤한글 2,350자, 한자 4,888자
¤부호 및 외국문자(일본, 러시아, 그리스어등)에 1,598자
¤똠,펲,믜,쀍 등 많은 현대 한글을 표현하지 못하는 문제가 있다.
¤1992년에 이러한 문제를 해결하기 위해서 조합형을 지원하게 개정되었으나 거의 사용되지 않는다.
qEUC-KR
¤KS X 1001 및 KS X 1003 규격으로 구성됨
¡영문 및 특수문자 지원 ( ASCII 표준에서 역슬래시(0x5C) 대신에 ‘\’를 지원 )
¡한글 지원 ( KSC 5601 )
q참고자료
qMS949, CP949 ( MS 확장완성형 한글)
¤MicroSoft에서 제정, Windows95부터 지원하며 한글 Windows의 기본 인코딩
¤EUC-KR의 확장이며, 하위호환성이 있음
¤KS X 1001(KSC5601)의 미흡한 한글지원 문제를 해결함
¤현대 한글 11,172자를 모두 지원함
¡기존 2,350글자에서 추가로 8,822 글자를 지원함.
¡똠,펲,믜,쀍 등 KSC5601에서 미지원하는 글자를 모두 지원함
¤MS에서 임의로 제정한 문자셋이기 때문에 많은 반대와 비난이 있었지만 현재는 Oracle DB,JAVA등 많은 환경에서 지원하고 있다.
발표당시에는 유니코드가 없을때고 KSC5601 완성형의 문제를 근본적으로 해결하는 조합형에 대한 열망이 클때라 MS에서 조합형을 지원해주기를 바라는 목소리가 많았다. 하지만 이미 KSC5601 완성형으로 작성된 수많은 문서들의 하위호환성 때문에 MS에서는 비난을 감수하고 확장완성형으로 KSC5601의 취약점을 보완하는 방향을 선택하였다.
발표당시에는 유니코드가 없을때고 KSC5601 완성형의 문제를 근본적으로 해결하는 조합형에 대한 열망이 클때라 MS에서 조합형을 지원해주기를 바라는 목소리가 많았다. 하지만 이미 KSC5601 완성형으로 작성된 수많은 문서들의 하위호환성 때문에 MS에서는 비난을 감수하고 확장완성형으로 KSC5601의 취약점을 보완하는 방향을 선택하였다.
¤CP949와 MS949는 완전히 동일한 것이나, 자바에서는 서로 다르게 구분해서 사용되므로 주의를 요한다. CP949는 IBM에서 처음 지정한 코드 페이지(sun.nio.cs.ext.IBM949)가 기준이고 Microsoft가 제정한 확장 완성형은 MS949(sun.nio.cs.ext.MS949)를 기준이다. 대부분의 환경에서는 구분없이 사용되나 Java에서는 서로 다르게 구분되므로 주의를 요한다.
Java에서는 CP949는 EUC-KR와 같이 취급되며, 확장 완성형을 사용하기 위해서는 MS949로 지정해야 한다.
¤ms949는 추가되는 8822글자에 대한 코드값을 사용하지 않는 영역을 임의로 할당하였기 때문에 글자 코드값이 정렬되지 않는 문제가 있다. 예를 들어 '가'의 코드값은 '간'보다 작기때문에 코드값 비교를 통해서 간단히 문자열 정렬을 할수가 있지만, 추가된 확장한글은 단순비교를 하면 뒤죽박죽이 되어 버린다. 이러한 문제를 피하려면 조합형이나 유니코드값 변환테이블을 사용해서 정렬을해야 한다.
¤마이크로소프트에서는 CP949/MS949를 ks_c_5601-1987이라고도 부른다.
IE 브라우저에서 EUC_KR 페이지를 다른 이름으로 저장하면 charset=ks_c_5601-1987 으로 저장된다. KSC5601 의 역사를 고려하면 참 생뚱맞은 이름이다.
IE 브라우저에서 EUC_KR 페이지를 다른 이름으로 저장하면 charset=ks_c_5601-1987 으로 저장된다. KSC5601 의 역사를 고려하면 참 생뚱맞은 이름이다.
q참고자료
Unicode ( 유니코드 )
q유니코드는 전 세계의 모든 글자를 하나로 표현하려는 체계임. Unicode 페이지에서 더 상세 설명.
'그외 주제들 > 한글처리' 카테고리의 다른 글
Response 구간 정리 (0) | 2013.09.30 |
---|---|
Request 구간 정리 (0) | 2013.09.30 |
JSP,Servlet에서 한글 문제를 피하려면.. (0) | 2013.09.30 |
Unicode ( 유니코드 ) (0) | 2013.09.30 |
Character-Set & Encoding이란? (0) | 2013.09.30 |