CStringUtf8ToUnicode


CString CStringUtf8ToUnicode( CString Utf8 )

{

	int wLen = 0;

	CString strUnicode;

	LPSTR pBufChar = NULL;

	LPWSTR pBufWchar  = NULL;

	

	//CString to char

	wLen = WideCharToMultiByte(CP_ACP, 0, Utf8, -1, NULL, 0, NULL, NULL);

	pBufChar = new char[wLen + 1];

	memset( pBufChar , 0, wLen + 1 );

	WideCharToMultiByte(CP_ACP, 0, Utf8, -1, pBufChar, wLen, NULL, NULL);

	

	//char to Unicode

	wLen = MultiByteToWideChar(CP_UTF8, 0, pBufChar, -1, NULL, NULL);

	pBufWchar = new wchar_t[wLen];

	memset(pBufWchar, 0, wLen * sizeof(wchar_t));

	MultiByteToWideChar(CP_UTF8, 0, pBufChar, -1, pBufWchar, wLen);



	strUnicode = CString(pBufWchar);

	if( pBufChar ) delete pBufChar;

	if( pBufWchar ) delete pBufWchar;



	return strUnicode;

}

你可能感兴趣的:(unicode)