1:UNICODE和GBK互转
wstring MBytesToWString(const char *lpcszString)
{
int len = strlen(lpcszString);
int unicodeLen = ::MultiByteToWideChar(CP_ACP, 0, lpcszString, - 1, NULL, 0);
wchar_t *pUnicode = new wchar_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;
return wString;
}
string WStringToMBytes(const wchar_t *lpwcszWString)
{
char *pElementText;
int iTextLen;
// wide char to multi char
iTextLen = ::WideCharToMultiByte(CP_ACP, 0, lpwcszWString, - 1, NULL, 0, NULL, NULL);
pElementText = new char[iTextLen + 1];
memset((void *)pElementText, 0, (iTextLen + 1) *sizeof(char));
::WideCharToMultiByte(CP_ACP, 0, lpwcszWString, 0, pElementText, iTextLen, NULL, NULL);
string strReturn(pElementText);
delete [] pElementT