直接上代码:
string UTF8ToGBK(const string& strUTF8)
{
int len = MultiByteToWideChar(CP_UTF8,0,strUTF8.c_str(),-1,NULL,0);
wchar_t* wszGBK = new wchar_t[len+1];
memset(wszGBK,0,(len+1)*sizeof(wchar_t));
MultiByteToWideChar(CP_UTF8,0,strUTF8.c_str(),-1,wszGBK,len);
len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
char *szGBK = new char[len + 1];
memset(szGBK, 0, len + 1);
WideCharToMultiByte(CP_ACP,0, wszGBK, -1, szGBK, len, NULL, NULL);
string strTemp(szGBK);
delete[]szGBK;
delete[]wszGBK;
return strTemp;
}