자바에서 문자셋 이용하기

새로운 문자셋(charset) 등장

아스키의 문제점

컴퓨터를 저장하거나,출력시 문자를 디지털 신호(10101011)로 변경할 때 즉 인코딩 시 기준이 되는 매핑 테이블이 필요하다.

전통적으로 **아스키 코드표(1바이트)**가 사용되었지만, 한글 등 2바이트 이상이 필요한 언어의 경우는 사용할 수 없어 새로운 매핑 테이블이 필요했다.

그래서 Extended ASCII를 기반으로한 EUC-KR(KSC5601),MS949는 비슷한 기법을 사용한 인코딩 방법이 나오기 시작했다.

EUC-KR,MS949 한글을 위한 문자셋이다. 하지만, 한글의 범위에 차이가 있다(MS949가 더 넓다 ,봵 등등)

하지만, 이경우에도 전세계의 데이터가 다르게 해석되는 문제가 발생하였다.

UNICODE 등장(JAVA)

이러한 문제점을 해결하기 위해 국제 표준화 기구(ISO)는 표준화 작업을 진행한다.

데이터가 전 세계 어디에서나 동일한 형식으로 인식되어야 한다는 점에 초점을 맞추어, 기존의 ASCII 인코딩 기법(1바이트)을 버리고 2Byte를 기준으로 인코딩하는 유니코드(Unicode)를 개발한다.

유니코드의 경우 각 나라별로 자신의 언어가 속하고 있는 고유한 공간을 할당받는다.

한글의 경우에는 0xAC00부터 시작하여 11172 자의 공간을 차지한다. 모든 글자는 사전 순서에 입각하여 순서대로 매핑되어있다.

유니코드의 도입으로 26개국에서 같은 데이터를 공유할 수 있게 되었고, 표준 인코딩 기법이 되었다.

새로운 인코딩 방식의 필요성

하지만, 이는 이전에 사용하던 Extended ASCII의 인코딩 기법인 "EUC-KR" 과 호환이 되지 않는다. 당연하게도 EUC-KR로 인코딩된 한글과 Unicode로 인코딩된 한글은 바이트 데이터가 전혀 다르다.