'컨트롤 한글 깨짐'에 해당되는 글 1건

320x100

UNICODE와 MCBS

Posted on 2013. 4. 12. 11:02
Filed Under Visual C++

컨트롤에서 한글이 깨지는 문제시,

 

Multibyte와 UniCode의 차이점입니다.

Multybyte는 영문 1 byte, 한글 2byte를 씁니다.

그러나 UniCode는 영문한글 모두 2byte를 쓰지요.

 

이 때문에 각 컨트롤이 원하는 바를 맞추지 못하면 한글이 깨지게 된답니다.

 

대표적으로 pszText는 Multybyte 형태의 자료형입니다.

그에 비해 LPWSTR 는 Unicode지요.

 

프로젝트 생성 후 아무런 설정을 건드리지 않았다면 프로그램은 기본적으로

UniCode 로 작성하도록 합니다. (호환성에는 좋거든요.)

 

그러나 ListCtrl은 Multibyte를 사용합니다.

그 때문에 UniCode를 Multibyte로 바꿔서 값을 넣어줘야 합니다.
바꾸는 방법은


USE_CONVERSION; // A2W, W2A를 사용하기 위해 먼저 선언한다.


A2W ( Multy를 Unicode로)
W2A (Unicode를 Multy로)

를 사용하면 됩니다.


USE_CONVERSION;

CString strValue; // 프로젝트 설정에 따라 형태가 결정됩니다. 아마도 UniCode일 것입니다.

strValue.Format( _T( "%s" ), W2A(itemp));
 
출처: 네이버 지식IN

 

반응형

About

by 쑤기c

반응형