문자셋의 종류와 특성---------------------------------------------------------------------------------------

아스키코드 -> 쉽게 생각하자 1바이트로 표현가능한 문자수를 표현하기 위핸 규약이다. 256개의 문자를 표현이 가능하다.

유니코드 -> 2바이트로 표현가능한 문자규약을 의미한다. 65536개의 문자를 표현이 가능하다.


SBCS MBCS WBCS------------------------------------------------------------------------------------

SBCS(single byte character set) = 문자를 표현함에 있어서 1바이트로 표현하는 방식을 의미한다.

MBCS(multi byte character set) = 어떨때는 1바이트 어떨때는 2바이트로 표현하는 방식을 의미한다.

WBCS(wide byte character set) = 유니코드처럼 모든 문자를 2바이트로 처리하는 문자세를 의미한다.

  현재로서는 SBCS문자열 처리방식은 거의 사용하지 않고 내가 사용하는 녀석도 WBCS를 통한 문자열 처리를 이용하고 있다 하지만 항상 예외는 있으니 SBCS를 포함한다고 볼수있는 MBCS와 WBCS를 모두 지원하는 프로그래밍 방법에 대해서 기술한다. 


MBCS WBCS--------------------------------------------------------------------------------------------

문자열 처리에 있어서 WBCS는 MBCS와 문자열에 대한 선언 자체가 다르다.

MBCS는 char을 통해서 문자열을 선언하고

WBCS는 wchar_t를 통해서 문자열을 선언한다.

마찬가지로 문자열을 처리하는 함수들또한 다르다.

간단히 문자열의 길이를 반환해주는 함수를 보면

strlen은 sbcs용 함수이다.

wcslen은 wbcs용 함수이다.

이런 함수들을 어떻게하면 각기 맞게 해줄까? 


MBCS WBCS를 동시에 지원하기 위한 전처리문장선언--------------------------------------------------------------

#ifdef UNICODE

 typedef WCHAR      TCHAR;

 typedef LPWSTR     LPTSTR;

 typedef LPCWSTR   LPCTSTR;

#else

 typedef CHAR         TCHAR;

 typedef LPSTR        LPTSTR;

 typedef LPCSTR      LPCTSTR;

#endif


#ifdef의 의미를 안다면 간단한 내용. 같은 자료형이지만 #define로 정의된 내용에 따라서 각각 자료형을 다르게 정의하면 된다.

Posted by JJOREG