다음을 통해 공유


유니코드 지원

유니코드는 1바이트로 표현할 수 없는 문자를 비롯하여 모든 문자 집합을 지원하는 사양입니다. 해외 시장을 겨냥한 제품을 프로그래밍 중이면 유니코드 또는 MBCS(멀티바이트 문자 집합)를 사용하거나 스위치 변경을 통해 프로그램을 빌드할 수 있도록 프로그램을 설정하는 것이 좋습니다.

와이드 문자는 2바이트 다국어 문자 코드입니다. 기술 기호 및 특수 게시 문자를 비롯하여 전 세계 첨단 컴퓨팅에 사용되는 대부분의 문자는 유니코드 사양에 따라 와이드 문자로 표현할 수 있습니다. 와이드 문자 하나로 표현할 수 없는 문자는 유니코드 서로게이트 기능을 사용하여 유니코드 쌍으로 표현할 수 있습니다. 모든 와이드 문자는 16비트의 고정 크기로 표현되므로 와이드 문자를 사용하면 국제 문자 집합을 사용한 프로그래밍이 간소화됩니다.

와이드 문자열은 wchar_t[] 배열로 표현되고 wchar_t* 포인터로 가리킵니다. 모든 ASCII 문자는 문자 앞에 접두사로 문자 L을 붙여 와이드 문자로 표현할 수 있습니다. 예를 들어 L'\0'은 종료 와이드(16비트) NULL 문자입니다. 마찬가지로, ASCII 문자열 리터럴은 ASCII 리터럴에 접두사로 문자 L을 붙여(예: L"Hello") 와이드 문자열 리터럴로 표현할 수 있습니다.

일반적으로 와이드 문자는 멀티바이트 문자보다 더 많은 메모리 공간을 차지하지만 프로세스 속도는 더 빠릅니다. 또한 멀티바이트 인코딩 시 1개 로캘만 표현할 수 있지만 전 세계 모든 문자 집합은 유니코드 표현으로 동시에 표현할 수 있습니다.

MFC 프레임워크 전체에서는 유니코드를 사용할 수 있으며 MFC에서는 다음 테이블에 표시된 것처럼 이식 가능한 매크로를 사용하여 유니코드를 사용할 수 있습니다.

MFC의 이식 가능한 데이터 형식

이식 불가능한 데이터 형식

다음 매크로로 바뀜

char

_TCHAR

char*, LPSTR(Win32 데이터 형식)

LPTSTR

const char*, LPCSTR(Win32 데이터 형식)

LPCTSTR

CString 클래스는 기본 클래스로 _TCHAR을 사용하고 쉬운 변환을 위해 생성자 및 연산자를 제공합니다. 유니코드에 대한 대부분의 문자열 작업은 Windows ANSI 문자 집합을 처리하는 데 사용되는 것과 동일한 논리를 사용하여 작성할 수 있습니다. 이러한 논리는 작업의 기본 단위가 8비트 바이트 대신 16비트 문자라는 점이 다릅니다. 멀티바이트 문자 집합을 사용하는 것과 달리 유니코드 문자를 별도의 2바이트인 것처럼 처리할 필요가 없습니다.

수행할 작업

참고 항목

개념

Visual C++의 텍스트 및 문자열

wmain 사용 지원