유니코드
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 |