엄밀히 말하면 제목이 잘못됐다. UTF-8도 유니코드의 한 종류니까.
어쨌든 UTF8로 인코딩된 스트링을 C++에서 사용하는 UCS-16 유니코드(WCHAR Type)으로 전환하려면
다음과 같이 하면 된다.
INT nSize = 0; LPWATR lpUnicode = NULL; nSize = MultiByteToWideChar(CP_UTF8, 0, szUTF8, -1, 0, 0); // 필요한 버퍼 사이즈 구하기(NULL 포함) lpUnicode = new WCHAR[nSize]; MultiByteToWideChar(CP_UTF8, 0, vals[i], -1, lpUnicode, nSize); // 실제로 변환하기네번째 인자는 변환할 UTF-8 스트링의 바이트수로서 -1을 지정할 경우 "UTF-8 스트링이 Null 문자를 만날 때까지"라는 의미가 된다. (NULL문자 포함)
'C++' 카테고리의 다른 글
멀티스레드 프로그래밍(Multithread Programming)에 관한 고찰 (1) (4) | 2009.03.24 |
---|---|
DLL Injection (4) | 2009.03.20 |
포인터 인자 검증하기 (Pointer Validation) (8) | 2009.03.02 |
CriticalSection에 관한 알쏭달쏭 퀴즈! (4) | 2009.02.05 |
문자열 함수 "_s" 시리즈 분석 (_tcsncpy_s 등) (10) | 2008.09.29 |