|
예전에는 MultibyteToWideChar 인가 이런 것을 썼던 것 같은 데, Programming에서 절로 골치아픈것이 한글처리이다. 보통은 DBCS 체계(흔히 euc-kr)에서와 Unicode처리에서 고민하게 되는 데, MLang API가 색다르게 이런 문제를 해결해주기도 한다.
보면, 0xb0, 0xa1 = ‘가’ 이렇게 되어 있다. 이것을 MLang API인 CreateConvertCharset, DoConversion을 이용하면, unicode로 변경할 수 있다.
물론, 그 반대도 가능하다. 만일, 속성의 Charset에 Unicode 사용을 Check하면, Edit에 입력된 “가나다abc”는 Unicode charset으로 저장된다. 이를 CreateConvertCharset Function을 통해서 1200(unicode)를 20949(euc-kr) 로 변경되도록 수정하고, DoConversion Function을 통해서 변환해보면 된다. 코드는 상위 image에 나온 것이 전부이니.. 굳이 … CString str = "가나다abc" ; BYTE pbyte[100] ; memset(pbyte, '\0', 100) ; UINT s_b= str.GetLength () ; //s_b = 2*s_b+1 ; CopyMemory( pbyte, str.GetBuffer (s_b), s_b); IMultiLanguage2 *m = NULL ; IMLangConvertCharset* m_pMLCC = NULL; char d[1024] ; memset(d, 0x0, sizeof(d)) ; HRESULT hr = CoCreateInstance(CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER, IID_IMultiLanguage2, (void**) &m ); //hr = m->CreateConvertCharset (1200, 20949, 0, &m_pMLCC) ; hr = m->CreateConvertCharset (20949, 1200, 0, &m_pMLCC) ; s_b = s_b*2+1 ; m_pMLCC->DoConversion (pbyte, &s_b, (BYTE*)d, &s_b) ;
|
카테고리
이글루링크
최근 등록된 덧글
어렷다
by klhk at 11/09 dhjjgbem by kl at 11/09 17번부터 어떻게 접는지.. by tykim0131 at 10/28 ATL이나 MFC를 이용하.. by 김명신 at 09/24 복원되었군요.. 제 RSS.. by 강세윤 at 09/24 허걱, 하고 있는 것으로.. by 강세윤 at 09/15 RSS 주소 서비스는 안 .. by 정성태 at 09/15 다시 보고 싶군요. by 강세윤 at 09/14 마악하임 ㄱ-;;; ㅋㅋㅋ.. by ㅋㅋㅋ at 09/13 17번막혀17번막혀17번막혀.. by 17번막혀 at 09/06 이글루 파인더
| |||