MBCS(멀티바이트 문자 집합) 지원
MBCS(멀티바이트 문자 집합)는 일본어 및 중국어와 같이 싱글바이트로 표현할 수 없는 문자 집합을 지원하기 위해 유니코드 대신 사용합니다. 국제 시장을 대상으로 프로그래밍할 경우 유니코드와 MBCS 중 하나를 사용하거나 스위치를 변경하여 둘 중 하나로 빌드할 수 있도록 프로그램을 활성화합니다.
가장 일반적인 MBCS 구현은 DBCS(더블바이트 문자 집합)입니다. 일반적으로 Visual C++는 DBCS를 전적으로 지원하고 MFC는 특정한 경우에 지원합니다.
샘플을 보려면 MFC 소스 코드 파일을 참조하십시오.
큰 문자 집합의 언어를 사용하는 시장의 플랫폼에서는 유니코드 대신 MBCS를 사용하는 것이 좋습니다. MFC는 국가별 데이터 형식과 C 런타임 함수를 사용하여 MBCS를 지원합니다. 코드를 작성할 때 동일한 방법을 사용해야 합니다.
MBCS에서 문자는 1바이트나 2바이트로 인코딩됩니다. 2바이트 문자에서 첫 바이트 또는 선행 바이트는 자신과 다음 바이트를 한 문자로 해석하도록 지시합니다. 첫 바이트는 선행 바이트로 사용하도록 예약된 코드 범위에 있습니다. 선행 바이트가 될 수 있는 바이트 범위는 사용 중인 코드 페이지에 따라 달라집니다. 예를 들어, 일본어 코드 페이지 932는 0x81 - 0x9F 범위를 선행 바이트로 사용하지만, 한국어 코드 페이지 949는 다른 범위를 사용합니다.
MBCS 프로그래밍에는 다음 사항을 모두 고려해야 합니다.
해당 환경의 MBCS 문자
파일 이름이나 디렉터리 이름과 같은 문자열에 MBCS 문자가 나올 수 있습니다.편집 작업
MBCS 응용 프로그램에서 편집 작업은 바이트가 아니라 문자에 대해 수행됩니다. 캐럿은 문자를 분할하지 않으며 오른쪽 화살표 키는 오른쪽으로 한 문자 이동시킵니다. 삭제는 한 문자를 삭제하며 실행 취소는 문자를 다시 삽입합니다.문자열 처리
MBCS를 사용하는 응용 프로그램에서 문자열을 처리할 경우 특별한 문제가 발생합니다. 두 가지 너비의 문자가 한 문자열에 함께 사용되기 때문에 선행 바이트를 확인해야 합니다.런타임 라이브러리 지원
C 런타임 라이브러리와 MFC는 싱글바이트, MBCS 및 유니코드 프로그래밍을 지원합니다. 싱글바이트 문자열은 str 런타임 함수 패밀리를 사용하여 처리되고, MBCS 문자열은 해당하는 _mbs 함수를 사용하여 처리되며, 유니코드 문자열은 해당하는 wcs 함수를 사용하여 처리됩니다. MFC 클래스 멤버 함수 구현에서는 "MBCS/유니코드 이식성"에서 설명한 대로 해당 환경에서 정상적인 str 함수 패밀리, MBCS 함수 또는 유니코드 함수로 매핑되는 이식 가능 런타임 함수를 사용합니다.MBCS/유니코드 이식성
Tchar.h 헤더 파일을 사용하여 동일한 소스로부터 싱글바이트, MBCS 및 유니코드 응용 프로그램을 빌드할 수 있습니다. Tchar.h는 str, _mbs 또는 wcs 함수로 적절하게 매핑되는 _tcs 접두사가 있는 매크로를 정의합니다. MBCS를 빌드하려면 _MBCS 기호를 정의합니다. 유니코드를 빌드하려면 _UNICODE 기호를 정의합니다. MFC 응용 프로그램의 경우 기본적으로 _MBCS가 정의됩니다. 자세한 내용은 Tchar.h의 제네릭 텍스트 매핑을 참조하십시오.
참고
_UNICODE와 _MBCS를 모두 정의하면 동작이 정의되지 않습니다.
Mbctype.h 및 Mbstring.h 헤더 파일은 필요한 경우에 따라 MBCS 관련 함수와 매크로를 정의합니다. 예를 들어, _ismbblead는 문자열의 특정 바이트가 선행 바이트인지 여부를 알려 줍니다.
국가별 이식성을 위해 유니코드 또는 MBCS(멀티바이트 문자 집합)를 사용하여 프로그램을 코딩하십시오.