Turn from: http://www.itstrike.cn/Question/5e977ab5-e035-4595-a35b-91aae63fa394.html
1.utf-8 Turn Unicode
Wstring utf8tounicode (const string& str)
{
int len = 0;
Len = Str.length ();
int Unicodelen =:: MultiByteToWideChar (Cp_utf8,
0,
str.c_str (),
-1,
NULL,
0);
wchar_t * Punicode;
Punicode = new wchar_t[unicodelen+1];
Memset (punicode,0, (unicodelen+1) *sizeof (wchar_t));
:: MultiByteToWideChar (Cp_utf8,
0,
str.c_str ( ),
-1,
(LPWSTR) Punicode,
Unicodelen);
Wstring RT;
RT = (wchar_t*) punicode;
Delete Punicode;
return RT;
}
2.Unicode Turn UTF-8
string UnicodeToUTF8 (const wstring& str) {char* pelementtext;
int Itextlen;
Wide char to multi char Itextlen = WideCharToMultiByte (Cp_utf8, 0, Str.c_str (),-1,
NULL, 0, NULL, NULL);
Pelementtext = new Char[itextlen + 1];
memset ((void*) pelementtext, 0, sizeof (char) * (Itextlen + 1));
:: WideCharToMultiByte (Cp_utf8, 0, Str.c_str (),-1, Pelementtext, Itextlen,
NULL, NULL);
String StrText;
StrText = Pelementtext;
Delete[] Pelementtext;
return strText; }