문자에는 여러가지가 있다.
- ANSI
American National Standards Institute 에서 지정한 규격으로 기존의 아스키 코드 이다.
영어권이 아닌 곳에서 1byte로 문자를 표현하는 것이 불가능할 수 있다.
아스키 코드는 영어 문자가 0 ~ 127 까지 있고, 이 문자를 제외한 128 ~ 255 를 매핑하며 문제가 발생했다.
나라별로 이 비트가 다르므로 이 문제를 통합해 표준화 한 것이 ANSI이다.
가장 널리 사용되는 문자 표준으로 각 문자를 1byte로 표현한다.
- 멀티 바이트
아스키 코드는 문자 하나가 1byte를 차지하지만 아스키 코드 만으론 한글이나 한자 등의 문자를 표시할 수 없다.
그래서 아스키 문자 코드에다가 다른 문자들을 2byte로 포함한 문자집합이 멀티바이트 문자집합이다.
이는 특정 문자 집합마다의 코드 페이지가 존재하고,
같은 코드 번호 일지라도 한글 코드 페이지로 해석하면 한글이 나오고, 일어 코드 페이지로 해석하면 일어로 나온다.
- 유니코드
모든 문자를 2byte로 표현하여, 전세계 모든 문자들을 표현할 수 있도록 만들어진 문자 체계이다.
세계 각국의 언어를 통일된 방법으로 표현할 수 있게 제안된 국제적인 코드 규약으로
8비트 문자인 아스키 코드를 16비트로 확장하여 전 세계의 모든 몬자를 표현하는 표준 코드이다.
16비트 체제로 확장해서 65536자의 영역 내에 전 세계의 모든 글자를 표시하는 표준안이다.
유니코드를 이용하면 프로그램을 하나만 만들면 모든 나라의 글자를 처리할 수 있기 때문에 좋다.
모든 글자를 2byte로 표현한다. 인터넷 HTML 파일로 올릴 수 없다. 즉 웹페이지 작성에 쓸 수 없다.
왜냐하면 작성 시점에 작성 국가의 Character Set을 가지고 있기 때문이다.
- UTF8
UFT(Unicode Transformation Format) = 압축방식
8 = 몇 bit단위로 index를 지정할 것인가.
유니코드의 일종으로 외국에선 대체로 UTF8을 사용한다.
영문/숫자/기호는 1byte이고 한글과 한자 등의 문자는 3byte로 표현한다.
Character Set이 동일하기 때문에 웹페이지 작성에 쓸 수 있다.
UTF8,16,24 는 다 다르다.
멀티바이트 | 유니코드 |
char | wchar_t |
TCHAR |
WCHAR |
string |
wstring |
strlen | lstrlen |
문자간의 변환은 순서가 중요하다.
'예전 > 3D' 카테고리의 다른 글
[3D] SkyBox (0) | 2012.11.06 |
---|---|
[3D UI] ShellExecute (0) | 2012.10.22 |
[3D] Font 관련 (0) | 2012.10.11 |
[3D] Texture 함수 (0) | 2012.10.11 |
[3D] 밉맵 (0) | 2012.10.11 |