ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • character sets
    정리필요2 2008. 7. 10. 22:53
    character sets (문자셋)

    1. Character Sets(문자셋)
     *문자셋의 정의 :  문자들의 집합, 약속된 문자의 표현방법


     [포괄적의미]
     *아스키코드(ASCII CODE)
      - 미국에서 정의하는 표준
      - 알파벳의 갯수 26에다 몇몇 확장 문자를 추가혀여 표현
      - 총 256개를 넘지 않음.
      - 1BYTE 문자열 256가지의 문자열


     *유니코드(UNICODE)
      - 컴퓨터에서 세계 각국의 언어를 통일된 방법으로 표현할수 있게 제안된 국제적인 문자코드 규약
      - 2BYTE로 나타내는 문자열. 종류가 256*256 = 65536개에 다함


     [명시적의미]
     *SBCS(Single Byte Character Set)
      - 문자열을 표현하는데 1byte만을 사용
      - 아스키코드는 일반적인 SBCS 방식


     *MBSC(Multi Byte Character Set)
      - 어떤문자는 1byte, 어떤 문자는 2byte로 표현
      - MBSC는 SBSC를 포함
      - 대부분의 문자는 2byte로 처리하나 아스키 코드에서 정의하고 있는
        문자를 표현할때는 1byte로 표현
     
     *WBSC(Wide Byte Character Set)
      - 유니코드가 일반적인  WBSC 방식
      - 모든 문자를 2BYTE로 처리


    2. SBCS, WBCS 문자열 조작 함수

      // typedef unsigned int size_t;

      char    <--> wchar_t
      strlen  <--> sizeo_t  wcslen( const wchar_t* string);
      strcpy  <--> wchar_t* wscpy( wchar_t* dest, const wchar_t* src);
      strncpy <--> wchar_t* wcsncpy( wchar_t* dest, const wchar_t* str, size_t cnt);
      strcat  <--> wchar_t* wcscat( wchar_t* dest, const wchar_t* str);
      strncat <--> wchar_t* wcsncat( wchar_t* dest, const wchar_t* str, size_t cnt);
      strcmp  <--> int wcscmp(const wchar_t* s1, const wchar_t* s2);
      strncmp <--> int wcscncmp(const wchar_t* s1, const wchar_t* s2, size_t cnt);


    3. SBCS, WBCS 문자열 입.출력 함수
      printf <--> int wprintf(const wchar_t* format[, argument]...);
      scanf  <--> int wsacnaf(const wchar_t* format[, argument]...);
      fgets  <--> wchar_t* fgetws(wchar_t* string, int n, FILE* stream);
      fputs  <--> int fputws(const wchar_t* string, FILE* stream);


    4. 윈도우에서 정의 하는 자료형
      typedef char CHAR;
      typedef wchar WCHAR;


      #define CONST const


      typdef CHAR* <--> LPSTR;
      typdef CONST CHAR* <--> LPCSTR;

      typdef WHCAR*  <--> LPWSTR;
      typdef CONST WCHAR*  <--> LPCWSTR;


    5. MBCS와 WBCS(유니코드)를 동시에 지원하기 위한 매크로

      typdef CHAR* <--> LPSTR;
      typdef CONST CHAR* <--> LPCSTR;

      typdef WHCAR*  <--> LPWSTR;
      typdef CONST WCHAR*  <--> LPCWSTR;

     

      #ifdef UNICODE // _UNICODE

        typedef WCHAR <--> TCHAR;

        typedef LPWSTR <--> LPTSTR;

        typedef LPCWSTR <--> LPCTSTR;   

      #else

        typedef CHAR <--> TCHAR;

        typedef LPSTR <--> LPTSTR;

        typedef LPCSTR <--> LPCTSTR;   

      #endif;

Designed by Tistory.