获取网页时为什么是乱码? 网页是GB2312编码

playfilemaker 2007-08-16 11:58:35
我的平台是Unicode环境,字符集是Unicode字符集。用CInternetSession获取网页时,strGetSentence取出来的值全是乱码?

CString strHttpName=_T("http://www.qyjz.net/AutoUpdate.asp?action=Auto"); // 需要提交数据的页面
CString uFlag = _T("UpdateFlag");
CString strFormData = uFlag; // 需要提交的数据
//AfxMessageBox(strFormData);

CInternetSession sess;
CHttpFile* fileGet;
CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded"); // 请求头

try
{
fileGet=(CHttpFile*)sess.OpenURL(strHttpName);//打开文件
}
catch(CException* e)
{
fileGet = 0;
throw;
}

CString strSentence, strGetSentence = _T("");
if(fileGet)
{
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = fileGet->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
if( bSuccess && dwStatus>= 200 &&dwStatus<300 )
{
//写入用户的Cookie信息
BOOL result = fileGet->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength()* 2 +2);
//////////////////////////////////////////////////////////////////////////////////////////////////////
while(fileGet->ReadString(strSentence)) // 读取提交数据后的返回结果
{
strGetSentence = strGetSentence + strSentence + char(13) + char(10);
...全文
446 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
developCpp 2007-08-31
  • 打赏
  • 举报
回复
拜托
楼主需要的是源代码
languangav 2007-08-30
  • 打赏
  • 举报
回复
用这个获取网页内容:使用糖果专业下载组件

http://www.languangav.com/soft/product_down.htm
developCpp 2007-08-20
  • 打赏
  • 举报
回复
http://download.csdn.net/user/developCpp
获取远程HTML网页内容
lyg_zy 2007-08-16
  • 打赏
  • 举报
回复
用_bstr_t 类,直接进行字符转换。
#include <comdef.h>

char * 转 wchar_t*
char chars[500];
_bstr_t bstr = chars;

wchar_t* 转 char *
CString str1 = bstr;
vcPlayer 2007-08-16
  • 打赏
  • 举报
回复
需要做转换。ANSI 到 Unicode的转换。MultibyteToWideChar()/WideCharToMultibyte()
playfilemaker 2007-08-16
  • 打赏
  • 举报
回复
谢谢楼上的两位大哥,我去试一下

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧