본문 바로가기
프로그래머/프로그래밍

문자열 코드 변환 방법 및 기초 지식 (VC++)

by plog 2008. 10. 30.

- 문자열 표현 종류

1. ascii (American Standard Code for information interchange)
아스키는 128개의 가능한 문자조합을 제공하는 7비트(bit) 부호로, 처음 32개의 부호는 인쇄와 전송 제어용으로 사용된다.

 

2. Unicode
2바이트가 하나의 문자를 나타내며, 세계 각국의 언어를 동일한 코드로 표현할 수 있습니다. Windows NT/2000 운영체제는 내부적으로 Unicode를 사용하고 있습니다. 그렇기 때문에 API 호출시에 Unicode 를 사용한다면 보다 효율적입니다. C++에서는 wchar_t 타입을 사용합니다.

 

3. MBCS(Multi Byte code Set)/DBCS (Double Byte code Set)
하나의 문자를 나타내기 위해서 한 바이트 이상이 사용됩니다. DBCS는 한 바이트 혹은 두 바이트가 하나의 문자를 나타내는 MBCS의 특수한 경우입니다.

C++ 에서는 unsigned char 타입을 사용합니다.( 보통은 char를 사용하는 것 같습니다)

  



- 자주 사용되는 호환용 캐스팅 키워드

LPSTR:   A 32-bit pointer to a character string.

LPCTSTR: A 32-bit pointer to a constant character string that is portable for Unicode and
                DBCS.

LPTSTR:  A 32-bit pointer to a character string that is portable for Unicode and DBCS

 
- TCHAR

 TCHAR winnt.h 헤더 파일에서 다음과 같이 정의를 하고 있습니다

#ifdef UNICODE

typedef WCHAR TCHAR;

#else

typedef char TCHAR;

TCHAR은 유니코드이든지 아스키코드이든지 안에 알아서 선언해 주면 컴파일러 옵션에서 알아서 컴파일을 해주는 유용한 매크로 

- 문자열 변환 매크로
아스키 코드의 경우
char szString[20] = "윈도우 ASDF";

유니코드의 경우
wchar_t szString[20] = L"윈도우 ASDF";

앞에 L를 붙여 주는 것만으로 유니코드로 변환하여 초기값을 저장한다
 

TCHAR 초기화에 대한 매크로 ( _T TEXT)
TCHAR szString[20] = _T("윈도우 ASDF");
TCHAR szString[20]= TEXT("윈도우 ASDF");

'프로그래머 > 프로그래밍' 카테고리의 다른 글

cab 파일 만드는 법  (0) 2008.11.12
XML 요소 작성의 규칙  (0) 2008.11.09
Singleton 패턴  (0) 2008.10.23
WSAAsyncSelect 모델 정의  (0) 2008.10.22
iBatis의 장점  (2) 2008.10.20

댓글