用CHttpFile读取一个HTML文件乱码的问题

tonybaobao 2004-08-10 04:23:02
前些天用WORD写文档的时候,发现了他提供的翻译服务是来自一个叫WorldLingo网站的.于是心血来潮,想写一个小程序,直接发个请求,获取返回的文件,然后取出翻译后的文字.想来一切都是那么简单...事实也进展很顺利.但当我测试的时候发现,读出来的竟然都是乱码.而我直接用IE看原文件就没有这个问题.写到TXT文件内也没有这个问题.但就是直接读取然后显示在EDIT里面有问题(但EDIT也能显示日语之类的,我测试过).我觉得就是一个编码的问题,请问谁有这方面经验?能帮小弟解决一下?主要代码如下:


CString COnlineTranslateDlg::GetTranslatedText(CString strRequestURL)
{
CString strRet;
CInternetSession mySession;

int strToFindLength = (int)strlen(strToFindFirst);
try
{
CString temp=_T("");
CHttpFile *file = (CHttpFile*)mySession.OpenURL(_T(strRequestURL));

while(file->ReadString(temp))
{
int position = temp.Find(strToFindFirst,0);
if( position != -1 )
{
temp.Delete(0,position);
int curPos= 18;
strRet = temp.Tokenize("><",curPos);
return strRet;
}
}
}
catch(CInternetException *e)
{
char errMsg[1024];
e->GetErrorMessage(errMsg,1024);
e->Delete();
return errMsg;
}
}
...全文
336 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonybaobao 2004-09-02
  • 打赏
  • 举报
回复
唉,算了,送分了!
oyljerry 2004-08-23
  • 打赏
  • 举报
回复
gz
drucula 2004-08-23
  • 打赏
  • 举报
回复
ReadString()每一次只会读出HTML文件中的一行文本,而不是一次全部读出来;
建议先把HTML全部读到一个地方,再查找你想找的文本:

CString store;
//得到整个HTML的内容
while(file->ReadString(temp))
{
store+=temp+"\r\n";
}
file->Close();

//查找你想要找的内容
int position = store.Find(strToFindFirst,0);


tonybaobao 2004-08-23
  • 打赏
  • 举报
回复
...算了...也不指望回答了...
sharkhuang 2004-08-14
  • 打赏
  • 举报
回复
字符编码格式的问题吧.
tonybaobao 2004-08-14
  • 打赏
  • 举报
回复
go on up...
tonybaobao 2004-08-11
  • 打赏
  • 举报
回复
晕,怎么又没有人回答啊
tonybaobao 2004-08-11
  • 打赏
  • 举报
回复
up一下
tonybaobao 2004-08-10
  • 打赏
  • 举报
回复
我开始以为是对字符串操作出了问题.后来发觉不对他进行任何操作,把全部HTML页读下来就是乱码.也肯定不是CHttpFile,CString之类的问题,因为我读其他网站是正常的.
tonybaobao 2004-08-10
  • 打赏
  • 举报
回复
strRequestURL类似这样:
http://www.worldlingo.com/wl/translate?wl_glossary=gl1&wl_text=値の個数が多すぎます&wl_srclang=JA&wl_trglang=zh_cn

18,356

社区成员

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

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