인코딩 (EUC-KR UTF-8 UTF-16 유니코드)

2015. 3. 9. 21:17Mobile/Phone book

국내 개발 환경에서 쓰이는 문자코드의 대부분을 차지하는 캐릭터 셋이다.

90년대의 한글 코드를 보면 완성형(KSC5601)과 조합형으로 구분지을 수 있다.
EUC-KR 은 그 완성형 코드의 발전 형태라 볼 수 있다.

특수 문자 + US-ASCII + KSC5601 = EUC-KR

자바는 태생이 유니코드이다. 엄밀히 자바 표준으로 사용하는 코드는 UCS-2 버전으로 UTF-16의 확장형태를 가진다.
유니코드는 90년대 중반 개발되고 2005년에는 4.1 버전까지 발표되었다.
인코딩 방식은 3종류로 구분된다. 
  • UTF-8
  • UTF-16
  • UTF-32
자바의 표준 인코딩은 UCS-2 인코딩이다. UCS-2 코드는 모든 언어를 2 바이트 고정폭으로 인코딩하고 있다.
UTF-16 의 경우 UCS-2 의 확장형태를 띄고 있다. UCS-2 는 2바이트 고정폭으로 문자를 인코딩하고 있다. 여기에 가변폭 인코딩을 추가한 형태로 2바이트, 4바이트의 크기를 가진다.
기본적으로 16비트(2바이트)의 인코딩을 하기 때문에 과거의 코드와 호환을 가지지 않게 된다. 이에 대한 대안으로 제시된 코드가 UTF-8 코드이다.
UTF-8 은 8비트 가변폭 인코딩을 형태로 캐릭터셋에 따라 1바이트에서 4바이트까지 크기가 변동한다. 첫바이트를 읽어 몇개의 바이트로 구분되어 있는지 파악할 수 있다.
아스키 코드와 호환이 되기 때문에 영어권 캐릭터 셋에 유리하고 데이터베이스 분야의 표준으로 자리잡고 있다.
UTF-32 는 4바이트 기반의 인코딩을 하기 때문에 메모리 낭비가 많아 자주 사용되지 않고 있다.
유니코드 1.X 시스템에서는 한글을 2530자만 담을 수 있는 KSC5601 캐릭터셋만 지원하고 있다.
반면 유니코드 2.X 이후부터는 조합 가능한 모든 글자인 11172자를 지원한다. 구조변경이 있기 때문에 1.X 버전과 호환을 가지지 않는다.

 인코영문 바이트 수 한글 바이트 수 
 UTF-8
 UTF-16(UCS-2) 
 KSC5601 




유니코드의 종류; Unicode 인코딩들의 차이점


'Mobile > Phone book' 카테고리의 다른 글

[KSC5601] Unified Hangeul(KSC5601-1992) to Unicode table  (0) 2015.03.09
What is KS X 1001 (KSC5601)? / KSC5601이란?  (0) 2015.03.09
GSM 7Bit Table with UCS2 value  (0) 2013.12.27
UCS2 Format 종류  (0) 2013.12.27
UCS2 0x80 Encoding 방식  (0) 2013.12.27