아스키코드와 유니코드

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
admin