InternetReadFile抓取网页出现乱码

Jeffris 2007-12-21 09:06:39
我的目的是通过该函数获取指定地址页面的源文件,然后保存到本地文件中,现在的问题是,使用该函数下载的页面中,所有出现中文的地方均被过滤掉了,请问该怎么解决?
相关代码如下:
HINTERNET hInternet ;
HINTERNET hOpenUrl ;

hInternet = InternetOpen(LPCWSTR("Application"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE) ;
// If internet session created OK
if (hInternet != NULL)
{
// InternetOpenURL
// Begin reading a complete HTTP URL.
hOpenUrl = InternetOpenUrl(hInternet, strURL, NULL, 0,INTERNET_FLAG_RELOAD, 0) ;

// If Open URL OK
if (hOpenUrl != NULL)
{
BOOL bLoop ;
DWORD lpdwNumberOfBytesRead, dwSize ;
bLoop = true;
dwSize = 1 ;

LPSTR lpBuffer ;
CString textLine;
CStdioFile fileWrite;
if(fileWrite.Open(strWriteName, CFile::modeWrite|CFile::modeCreate))
{
while (bLoop)
{
lpBuffer = new char[dwSize+1] ;

// InternetReadFile
// Reads data from a handle opened by the InternetOpenUrl
InternetReadFile(hOpenUrl, (LPVOID)lpBuffer, dwSize, &lpdwNumberOfBytesRead) ;

if (lpdwNumberOfBytesRead == 0)
bLoop = false ;
else
{
lpBuffer[lpdwNumberOfBytesRead] = '\0';
fileWrite.WriteString((CString)lpBuffer);
}
delete lpBuffer;
}

fileWrite.Close();
AfxMessageBox(_T("下载完毕"));
}
else
AfxMessageBox(_T("URL地址不正确"));
}
}
...全文
601 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcxjia 2007-12-22
  • 打赏
  • 举报
回复
中文被过滤掉了?
我们浏览的大多数现在还都是中文网页吧
过滤掉不就什么都没有了?
Jeffris 2007-12-22
  • 打赏
  • 举报
回复
问题发现了,原来是ReadString对UTF-8的支持不完善所致,呵呵

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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