网址字符串应该是什么字符格式?

baoyz 2009-03-29 12:42:06
我做了一个软件用于下载。用的是
CString strUrl;
fileGet=(CHttpFile*)sess.OpenURL(LPCTSTR(strUrl));
又用
pHttpConn = session.GetHttpConnection(LPCTSTR(strServer), nPort))
fileGet = pHttpConn->OpenRequest(CHttpConnection::HTTP_VERB_GET, LPCTSTR(strObject));
试了一次

可是当我在一个CEdit里输入网址(http://www.abc.com/def.php?ghi=123)时,下载正常。网址可用。

可是我把这个网址存到一个TXT文件里时,用file.ReadString(strUrl);读出再下载,就不能下载了。

请问我的TXT应该存储成什么格式的?
UTF-8,unicode,ascii?
...全文
456 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
baoyz 2009-04-02
  • 打赏
  • 举报
回复
3、4、5同时遇到了。这破网站做的。
Future_vc 2009-03-31
  • 打赏
  • 举报
回复
能出错的也就这么几条。
1、网址用CString直接写。
2、ReadString()读出来的最后一个字符是'\r'。
3、PHP?有时侯分大小写。‘A’和‘a’是不一样的。
4、有些网页如论坛类的需要Cookies
5、有些网站的Cookies一会儿时间不连接就过期,需要经常的连接。
mengde007 2009-03-29
  • 打赏
  • 举报
回复
没什么关系……
一条晚起的虫 2009-03-29
  • 打赏
  • 举报
回复
//这个和你保存成什么格式没有关系吧?保存成什么,读取的时候就是什么。
//你挂起看一下读出的内容是什么
baoyz 2009-03-29
  • 打赏
  • 举报
回复
大家帮忙看看吧。程序都是MFC做的。
用这段写了一个列表文件

{
UpdateData(true);
CStdioFile file2;
CString outfilename;
CString outhtml;
int filelist = 0;
int iout,j;
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
TCHAR exeFullPath[MAX_PATH];
GetModuleFileName(NULL,exeFullPath,MAX_PATH);
_splitpath(exeFullPath, drive, dir, NULL,NULL);
do
{
outfilename.Format("%s%sout%d.lst", drive, dir,filelist);
filelist++;
}
while (PathFileExists(outfilename));
file2.Open(outfilename,CFile::modeCreate| CFile::modeWrite);
for (j=0;j<i;j++)
{
file2.WriteString(m_strFornt);//前缀如“HTTP://”
file2.WriteString(AstrOut.GetAt(j));//AstrOut就是URL数组
file2.WriteString("\n");
}
file2.Close();

outhtml.Format("%d个文件被处理!;采集到%d个有效数据",ifile,i);
MessageBox(outhtml);
}

然后在另一个程序中用这段读出来

BOOL CXiazaiDlg::MyRead()
{
UpdateData(true);
CString strTmp;
CString FileTitle;
CString filename;

m_Source.MakeLower();
if (m_Source.Left(7) == "http://")//如果输入是网址直接下载
{
arrUrl.Add(m_Source);
if (!PathFileExists(m_OutPath))
{
arrOutFile.Add(m_OutPath);
}
else
{
if (m_Source.Find('?') == -1)//有的网址有“?”今天就遇到了。
{
strTmp = m_Source.Right(m_Source.GetLength()-1-m_Source.ReverseFind('/'));
}
else
{
strTmp = m_Source.Right(m_Source.GetLength()-1-m_Source.ReverseFind('?'));
strTmp += ".htm";
}
filename.Format("%s\\%s",m_OutPath,strTmp);
arrOutFile.Add(filename);
}
iNum++;
}
else if (PathFileExists(m_Source))//输入的是列表文件名
{
CStdioFile filein;
if (filein.Open(m_Source,CFile::modeRead))
{
while (filein.ReadString(strTmp))//这里读取列表,读的没有错误
{
if (strTmp != "")
{
arrUrl.Add(strTmp);
if (strTmp.Find('?') == -1)
{
strTmp = strTmp.Right(strTmp.GetLength()-1-strTmp.ReverseFind('/'));
}
else
{
strTmp = strTmp.Right(strTmp.GetLength()-1-strTmp.ReverseFind('?'));
strTmp += ".htm";
}
filename.Format("%s\\%s",m_OutPath,strTmp);

arrOutFile.Add(filename);
iNum++;
}
}
if (iNum == 1)
{
if (!PathFileExists(m_OutPath))
{
arrOutFile[0] = m_OutPath;
}
}
filein.Close();
}
else
{
MessageBox("列表读取失败!");
}
}
else
{
return false;
}
return true;
}

最后下载时,如果输入先前输出的文件,下载就错误。;
如果直接输入一个文件里的URL,就不会错。
文件用"UE"换了好几次格式了。都不行。
oyljerry 2009-03-29
  • 打赏
  • 举报
回复
先看读取出来的字符串是不是正确,如果工程用了unicode,可以把txt格式设置unicode试试
cnzdgs 2009-03-29
  • 打赏
  • 举报
回复
看你的程序用的是哪种字符集,如果程序与文件编码不一致则需要转换。
liyinlei 2009-03-29
  • 打赏
  • 举报
回复
和文件存储格式没有关系。应该是你代码有问题,调试一下,看看从文件里读出来后的网址字符串
课程目标:学习Java语言中字符相关的知识、字符编码常识和正则表达式的使用,并完成案例前导课程:《Java工程师必学系列课程》前4部课程内容:本课程是《Java工程师必学系列课程》的第5部分,主要讲解Java语言中字符相关知识、字符编码常识和正则表达式的使用。本课程涉及的主要内容可以分为四部分:一、String、StringBuffer和StringBuilder类基本常识、基本原理和使用技巧二、字符编码常识三、Java语言正则表达式的详细语法和使用技巧四、实战案例课程说明:在开发Java程序的过程中,最常用的类莫过于字符相关的类。可以毫不夸张的说,任何一个Java程序,都离不开对字符保存和处理。很多学员对字符的理解只是处于比较粗浅的阶段。殊不知,如果对字符处理的不好,会影响到软件的运行效率。本课程专门讲解字符相关的知识,将从字符的存储方式、底层的运行方式等各方面深入讲解其中的原理和技巧。此外,对字符进行更高级的处理,又要用到正则表达式的相关知识。正则表达式广泛应用于各种与字符处理相关的场合。它是一套独立的语言系统,经过几十年的完善和发展,现在已经非常的强大,并且形成了国际标准。各种高级编程语言,都实现了自己的表达式引擎。本课程详细的讲解了Java语言中正则表达式的语法和使用技巧。掌握了正则表达式,对编程水平的提高有非常大的帮助!同时,本课程在最后一部分,安排了非常精彩的、完整的实战案例,通过实战的形式切实帮助学员提高解决具体问题的能力!预期效果:认真学习完本课程,学员可以掌握字符处理及正则表达式相关的系统知识,并能提高实际的编码水平。环境配置要求:学习本课程需安装JDK1.8或更高版本的JDK,以便程序能正确运行,建议使用IntelliJ IDEA 2019.1.2或更高版本的开发工具。    因有合作协议约束,《穆哥学堂》只提供PDF版本的课件!

18,356

社区成员

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

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