유니코드

Programming/API 2015. 6. 1. 15:54

유니코드

전세계 통합언어


지금까지 글자를 표현하기위해서 영문은 ASCII코드, 한글은 완성형 코드를 사용하였다.

하지만 게이의 글로벌버전이나 다른 언어를 지원 할 경우에 해당 국가의 언어코드에 맞는

코드로 변경해야하는 불편함이있다.


하지만 유니코드를 사용한다면 추가적인 코드의 변환없이 글자만 변환하여 어떤 언어라도 표현이 가능하게 해줄 수 있다.


현재 유니코드는 산업표준으로 정의되었으며, 대부분의 OS, 어플리케이션, 웹사이트, DB, 

텍스트파일등 글자를 저장, 표현하기 위해서 유니코드르 사용하는 것이 표준이 되어가고 있다.




문자표현의 종류


( 문자를 표현하는 방식의 용어 )

SBCS( Single byte Character set)

- 문자 하나에 1Byte를 사용 : ASCII 영어의 경우 128개의 문자로 모든 표현이 가능하다.


MBCS( Multi Byte Character Set )

- 문자 하나에 1 ~ 2Byte를 사용 : 영어는 1Byte ASCII / 한글은 2Byte 완성형


WBCS( Wide Byte Character Set )

- 문자 하나에 2Byte 이상을 사용 : 유니코드


유니코드의 인코딩 방식


유니코드는 글자 표이며, 자체가 인코딩 방식을 뜻하는 것은 아니다.

유니코드에는 다음과 같은 인코딩 방식이 존재한다.( 더 많은데 일반적인 방식만 소개함 )


UTF-8     1Byte를 기본으로한다.

UTF-16    2Byte를 기본으로 한다.(윈도우의 기본 인코딩 방식)

UTF-32    4Byte를 기본으로 한다.


** 유니코드의 문자 하나는 2Byte라고 오해를 한다.

    일반적으로 유니코드는 2Byte를 기본으로 할 뿐 2Byte로 모든 글자를 표현하는것은 아니다.


BOM 코드란?( 유니코드 서명 )


유니코드 파일을 저장할 때는 'BOM 코드' '유니코드 서명'등의 옵션이 존재한다.

유니코드는 기본적으로 글자 표현에 2Byte 이상을 사용하게 되므로 바이트 순서가 중요하다.

OS나 플랫폼에 따라서 바이트의 정렬이 다를 수 있으므로 이를 확인하기 위한 코드이다.


BOM 코드를 저장하게되면 해당 파일의 가장 앞에 다음과 같은 값이 저장된다.


UTF-8 :                             EF BB BF

UTF-16(빅엔디안)                  FE FF

UTF-16(리틀엔디안)                FF FE

UTF-32(빅엔디안)                  00 00 FE FF

UFT-32(리틀엔디안)                FF FE 00 00


위와 같이 이를 통해 해당 파일의 바이트 오더와 인코딩 방식을 확인할 수 있다.



유니코드 목록

       


                                                                                출처 : 위키백과

0x0000부터 글자 마다 코드를 하나씩 정한 전세계언어 통합 표이다.

많이 사용하는 글자는 BMP영역에 포함이 되어서 2Byte로 표현이 가능하지만

많이 사용하지 않는 한자나 특별한 문자들은 2Byte이상을 사용한다.



'Programming > API' 카테고리의 다른 글

윈도우의 메모리 구조  (0) 2015.06.03
WBCS(유니코드) 문자열  (0) 2015.06.01
QueryPerformanceFrequency / QueryPerformanceCounter  (0) 2015.05.22
SetConsoleCursorPosition()  (0) 2015.04.28
SetConsoleCursorInfo()  (0) 2015.04.28
admin