UTF8ToGB

来源:岁月联盟 编辑:exp 时间:2012-01-17
int UTF8ToGB(const char* str,char *out)
{
 WCHAR *strSrc;
 TCHAR *szRes;
 int len;
 
 //获得临时变量的大小
 int i = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
 strSrc = new WCHAR[i+1];
 MultiByteToWideChar(CP_UTF8, 0, str, -1, strSrc, i);
 
 //获得临时变量的大小
 i = WideCharToMultiByte(CP_ACP, 0, strSrc, -1, NULL, 0, NULL, NULL);
 szRes = new TCHAR[i+1];
 WideCharToMultiByte(CP_ACP, 0, strSrc, -1, szRes, i, NULL, NULL);
 
 len = (i+1)*sizeof(CHAR);
 memcpy(out,szRes,len);
 out[len+1] ='/0';
 
 delete []strSrc;
 delete []szRes;
 
 return len;
}

摘自 sniper_bing的专栏