看代码吧:
CString CCommon::GetHtml(CString server,CString path,CString postData)

...{
static CInternetSession sess;
CHttpFile* pFile;
CHttpConnection* pConn;
pConn=sess.GetHttpConnection(server,(INTERNET_PORT)2930);
pFile=pConn->OpenRequest(CHttpConnection::HTTP_VERB_POST,path);
//pFile->SendRequest(NULL,0,postData,postData.GetLength());
if(!postData==NULL)

...{
CString strHeaders=_T(" Content-Type:application/x-www-form-urlencoded;charset=gb2312"); // 请求头
pFile->SendRequest(strHeaders,strHeaders.GetLength(),(LPVOID)(LPCTSTR)postData,postData.GetLength());
}

CString html,strLine = _T( " ");
DWORD dwStatus;
DWORD dwBuffLen =sizeof(dwStatus);
pFile->QueryInfoStatusCode(dwStatus);
//BOOL bSuccess=pFile->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,&dwStatus,&dwBuffLen);
if(dwStatus==HTTP_STATUS_OK)

...{
while(pFile->ReadString(strLine)) // 读取提交数据后的返回结果

...{
html=html+strLine+char(13)+char(10);
}
}
else

...{
html="0";
}
pFile->Close();
delete pFile;

return html;
}

调用:
CString str=CCommon::GetHtml("127.0.0.1","WebSite3/Default.aspx","a=中国&b=aa&c=cc");
MessageBox(str);
发现"中国"变成了乱码,
解决的方法如下:
WebSite3/Default.aspx是用c#做的,我的方法是在服务器端输出时进行编译转换
Response.Charset = "gb2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.Write(Request.HttpMethod+" ");
NameValueCollection vc = Request.Form;
foreach(string key in vc.Keys)

...{
Response.Write(key + ":" + vc[key] + " ");
}
Response.End();
再次运行,一切都OK了...