아스키코드와 유니코드
Programming/API 2015. 10. 19. 17:57아스키코드는 미국에서 정의하고 있는 표준이고 알파벳의 개수는 26개이다.
여기서 몇몇 확장문자를 포함하면 256개가 넘지 않는다.
그래서 아스키코드는 1바이트로 표현이 된다.
하지만 문제는 다른 국가에서 사용하는 문자이다.
그래서 등장한 것이 유니코드이다.
유니코드는 문자를 표현할 때 균일하게 2바이트를 사용한다.
2바이트를 사용하면 문자를 65536개를 표현할 수 있다.
문자 셋
SBCS(Single Byte Character Set)
1바이트만을 사용하는 방식이다.
대표적으로 아스키코드가 SBCS에 포함된다.
MBCS(Multi Byte Character Set)
동일한 바이트 수를 적용하는 것이 아니라 다양한 바이트 수를 사용해서 문자를 표현하는 방식
어떤 문자는 1바이트이고 어떤 문자는 2바이트로 표현된다.
유니코드는 MBCS에 포함되지 않지만 SBCS는 MBCS에 포함이 된다.
WBCS(Wide Byte Character Set)
유니코드가 WBCS방식에 해당한다.
모든 문자를 2바이트에 처리하는 문자셋이다.
WBCS 기반의 프로그래밍
char을 대신하는 wchar_t
char형 변수는 1바이트가 할당되지만 wchar_t는 2바이트 메모리 공간이 할당된다.
typedef unsigned short wchar_t;
"ABC"를 대신하는 L"ABC"
SBCS 함수 |
WBCS 함수 |
strlen |
wcslen |
strcpy |
wcscpy |
strncpy |
wcsncpy |
strcat |
wcscat |
strncat |
wcsncat |
strcmp |
wcscmp |
strncmp |
wcsncmp |
typedef unsigned int size_t
MBCS와 WBCS의 동시지원
// Windows에서 정의하고 있는 자료형
typedef char CHAR;
thpedef wchar_t WCHAR;
#define const CONST;
typedef CHAR * LPSTR;
typedef CONST CHAR * LPCSTR;
typedef WCHAR * LPWSTR;
typedef CONST WCHAR * LPCWSTR;
'Programming > API' 카테고리의 다른 글
한글IME (0) | 2015.09.22 |
---|---|
멀티미디어 타이머로 더 정밀한 컴퓨터 경과시간 얻기(msec단위) (0) | 2015.09.22 |
DIB 구조 (0) | 2015.06.22 |
CreateFile, ReadFile, WriteFile (0) | 2015.06.22 |
DDB의 구조,출력 (0) | 2015.06.22 |