下面是代码
CString strSentence, strWriteName;
CString strFileName=_T("http://www.google.com"); CInternetSession sess;
CHttpFile* fileGet;
try
{
fileGet=(CHttpFile*)sess.OpenURL(strFileName);
}
catch(CException* e)
{
fileGet = 0;
throw;
} if(fileGet)
{
DWORD dwStatus;
DWORD dwStatusCode;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = fileGet->QueryInfoStatusCode(dwStatus); if(dwStatus==200)//dwStatusCode)
{
//CStdioFile fil;
//fil.Open(_T("1.txt"),CFile::modeWrite|CFile::modeCreate);
while(fileGet->ReadString(strSentence))
{ //strSentence.Format(_T("%d"),55555555);
//fil.WriteString(strSentence+_T("\n"));
//MessageBox(strSentence,0,0);
strWriteName.Append(strSentence);
//strWriteName.Append(_T("\n"));
}
fil.Close();
MessageBox(strWriteName,0,0);
}
else
{
strSentence.Format(_T("打开网页文件出错,错误码:%d"), dwStatus);
AfxMessageBox(strSentence);
}
fileGet->Close();
delete fileGet;
}
else
AfxMessageBox(_T("不能找到网页文件!")); sess.Close();
工程支持UNICODE这样取出来的东西是乱码~
试了好几种编码的网页 utf-8 gb2312 全英文网站
都是乱码~~~
高手请帮助~sorry~
我目前没有积分~~~
CString strSentence, strWriteName;
CString strFileName=_T("http://www.google.com"); CInternetSession sess;
CHttpFile* fileGet;
try
{
fileGet=(CHttpFile*)sess.OpenURL(strFileName);
}
catch(CException* e)
{
fileGet = 0;
throw;
} if(fileGet)
{
DWORD dwStatus;
DWORD dwStatusCode;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = fileGet->QueryInfoStatusCode(dwStatus); if(dwStatus==200)//dwStatusCode)
{
//CStdioFile fil;
//fil.Open(_T("1.txt"),CFile::modeWrite|CFile::modeCreate);
while(fileGet->ReadString(strSentence))
{ //strSentence.Format(_T("%d"),55555555);
//fil.WriteString(strSentence+_T("\n"));
//MessageBox(strSentence,0,0);
strWriteName.Append(strSentence);
//strWriteName.Append(_T("\n"));
}
fil.Close();
MessageBox(strWriteName,0,0);
}
else
{
strSentence.Format(_T("打开网页文件出错,错误码:%d"), dwStatus);
AfxMessageBox(strSentence);
}
fileGet->Close();
delete fileGet;
}
else
AfxMessageBox(_T("不能找到网页文件!")); sess.Close();
工程支持UNICODE这样取出来的东西是乱码~
试了好几种编码的网页 utf-8 gb2312 全英文网站
都是乱码~~~
高手请帮助~sorry~
我目前没有积分~~~
解决方案 »
- 谁用过ekRichEdit、DirectUI 、DSkinLite 这些界面库的啊
- http 下载问题 为什麽我在网上找到的源码有些链接不能下载
- 画图函数为什么不能画图啊 ,帮帮忙,在线等啊
- 菜鸟请教各位大虾关于窗口重绘的问题!!
- 关于activex控件在网页里加载时警告和打印预览问题
- _+_+_+_+_+_+_+_+_+_+_+_+_+_+_+我的ActiveX控件咋这么大泥?
- 关于Unicode--悬赏3000分!
- 程序在VC环境下编译运行都没错,但是单独把.exe文件取出来执行就出错,为何?
- 谁能给点经验啊?……求救!!关于同一数组中存放不同类型对象指针的问题!!!!
- 哎!
- 如何在写文件时捕获文件在磁盘上的物理地址
- CComBSTR使用完毕需要显示释放内存空间吗?
int len=str.GetLength();
int unicodeLen=MultiByteToWideChar(CP_UTF8,0,str,-1,NULL,0);
wchar_t * pUnicode;
pUnicode=new wchar_t[unicodeLen+1];
memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));
MultiByteToWideChar(CP_UTF8,0,str,-1,(LPWSTR)pUnicode,unicodeLen);
BYTE * pTargetData=NULL;
int targetLen=WideCharToMultiByte(936,0,(LPWSTR)pUnicode,-1,(char *)pTargetData,0,NULL,NULL);
pTargetData=new BYTE[targetLen+1];
memset(pTargetData,0,targetLen+1);
WideCharToMultiByte(936,0,(LPWSTR)pUnicode,-1,(char *)pTargetData,targetLen,NULL,NULL);
CString rt;
rt.Format("%s",pTargetData);
delete pUnicode;
delete pTargetData;
return rt;
void CtestDlg::OnBnClickedButton1()
{
CString str, strWriteName;
CString strFileName=_T("http://www.google.com"); CInternetSession sess;
CHttpFile* fileGet;
try
{
fileGet=(CHttpFile*)sess.OpenURL(strFileName);
}
catch(CException* e)
{
fileGet = 0;
throw;
} if(fileGet)
{
DWORD dwStatus;
DWORD dwStatusCode;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = fileGet->QueryInfoStatusCode(dwStatus); if(dwStatus==200)//dwStatusCode)
{
/*CStdioFile fil;
fil.Open(_T("1.txt"),CFile::modeWrite|CFile::modeCreate);*/
while(fileGet->ReadString(str))
{ //strSentence.Format(_T("%d"),55555555);
//fil.WriteString(strSentence+_T("\n"));
//MessageBox(strSentence,0,0);
//strWriteName.Append(_T("\n"));
int len=str.GetLength();
int unicodeLen=MultiByteToWideChar(CP_UTF8,0,(LPCSTR)CString_To_LPBYTE(str),-1,NULL,0);
wchar_t * pUnicode;
pUnicode=new wchar_t[unicodeLen+1];
memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));
MultiByteToWideChar(CP_UTF8,0,(LPCSTR)CString_To_LPBYTE(str),-1,pUnicode,unicodeLen);
BYTE * pTargetData=NULL;
int targetLen=WideCharToMultiByte(936,0,(LPWSTR)pUnicode,-1,(char *)pTargetData,0,NULL,NULL);
pTargetData=new BYTE[targetLen+1];
memset(pTargetData,0,targetLen+1);
WideCharToMultiByte(936,0,(LPWSTR)pUnicode,-1,(char *)pTargetData,targetLen,NULL,NULL);
CString rt;
rt.Format(_T("%s"),pTargetData);
delete pUnicode;
delete pTargetData;
//return rt;
strWriteName.Append(rt);
}
//fil.Close();
MessageBox(strWriteName,0,0);
}
else
{
str.Format(_T("打开网页文件出错,错误码:%d"), dwStatus);
AfxMessageBox(str);
}
fileGet->Close();
delete fileGet;
}
else
AfxMessageBox(_T("不能找到网页文件!")); sess.Close();
}
LPBYTE CtestDlg::CString_To_LPBYTE(CString str)
{
LPBYTE lpb=new BYTE[str.GetLength()+1];
for(int i=0;i<str.GetLength();i++)
lpb[i]=str[i];
lpb[str.GetLength()]=0;
return lpb;
}
还是乱码,郁闷~~~
但是网页读取不完全,还是谢谢你~
CInternetFile* file = NULL;
try
{
// 试着连接到指定URL
//session.SetOption();
file = (CInternetFile*) session.OpenURL(_T("http://www.people.com.cn/rss/politics.xml"));
}
catch (CInternetException* m_pException)
{
// 如果有错误的话,置文件为空
file = NULL;
throw;//return FALSE;
m_pException->Delete();
} // 用dataStore来保存读取的网页文件
CStdioFile dataStore; if (file)
{ BOOL bIsOk = dataStore.Open(_T("1.xml"), CFile::modeCreate | CFile::modeWrite | CFile::shareDenyWrite | CFile::typeText);
if (bIsOk)
{ // return FALSE;
LPBYTE lpb=new BYTE[1024];
while(file->Read(lpb,1024)>0)
{
// 读写网页文件,直到为空
//while (file->ReadString(somecode) != NULL) //如果采用LPTSTR类型,读取最大个数nMax置0,使它遇空字符时结束
//{
// dataStore.WriteString(somecode);
// dataStore.WriteString(_T("\n")); //如果somecode采用LPTSTR类型,可不用此句
//}
dataStore.Write(lpb,255);
delete lpb;
LPBYTE lpb=new BYTE[1024];
}
delete lpb;
file->Close();
delete file;
}
}
else
{
dataStore.WriteString(_T("到指定服务器的连接建立失败..."));
}