Reprinted from:http://www.cppblog.com/Tongy0/archive/2013/03/13/198378.html
StaticStd::wstring mbytestowstring (Const Char*lpcszstring); StaticSTD::stringWstringtombytes (Constwchar_t*lpwcszwstring); StaticStd::wstring utf8towstring (Const Char*lpcszstring); StaticSTD::stringWStringToUTF8 (Constwchar_t*lpwcszwstring); std::wstring kklogobject::mbytestowstring (Const Char*lpcszstring) { intLen =strlen (lpcszstring); intUnicodelen =:: MultiByteToWideChar (CP_ACP,0, Lpcszstring,-1Null0); wchar_t* Punicode =NewWchar_t[unicodelen +1]; memset (Punicode,0, (Unicodelen +1) *sizeof(wchar_t)); :: MultiByteToWideChar (CP_ACP,0, Lpcszstring,-1, (LPWSTR) Punicode, Unicodelen); Wstring wstring= (wchar_t*) Punicode; Delete[] punicode; returnwString;} STD::stringKklogobject::wstringtombytes (Constwchar_t*lpwcszwstring) { Char*Pelementtext; intItextlen; //wide char to multi charItextlen =:: WideCharToMultiByte (CP_ACP,0, Lpwcszwstring,-1Null0, NULL, NULL); Pelementtext=New Char[Itextlen +1]; memset ((void*) Pelementtext,0, (Itextlen +1) *sizeof(Char)); :: WideCharToMultiByte (CP_ACP,0, Lpwcszwstring,0, Pelementtext, Itextlen, NULL, and NULL); STD::stringStrreturn (Pelementtext); Delete[] pelementtext; returnStrreturn;} Std::wstring kklogobject::utf8towstring (Const Char*lpcszstring) { intLen =strlen (lpcszstring); intUnicodelen =:: MultiByteToWideChar (Cp_utf8,0, Lpcszstring,-1Null0); wchar_t*Punicode; Punicode=NewWchar_t[unicodelen +1]; memset ((void*) Punicode,0, (Unicodelen +1) *sizeof(wchar_t)); :: MultiByteToWideChar (Cp_utf8,0, Lpcszstring,-1, (LPWSTR) Punicode, Unicodelen); Wstring Wstrreturn (Punicode); Delete[] punicode; returnWstrreturn;} STD::stringKklogobject::wstringtoutf8 (Constwchar_t*lpwcszwstring) { Char*Pelementtext; intItextlen =:: WideCharToMultiByte (Cp_utf8,0, (LPWSTR) lpwcszwstring,-1Null0, NULL, NULL); Pelementtext=New Char[Itextlen +1]; memset ((void*) Pelementtext,0, (Itextlen +1) *sizeof(Char)); :: WideCharToMultiByte (Cp_utf8,0, (LPWSTR) lpwcszwstring,-1, Pelementtext, Itextlen, NULL, and NULL); STD::stringStrreturn (Pelementtext); Delete[] pelementtext; returnStrreturn;}
C + + ANSI, UNICODE, UTF8 Mutual transfer