首页
社区
课程
招聘
[求助]懂DELPHI帮我看看错哪里了
发表于: 2008-11-16 10:05 4273

[求助]懂DELPHI帮我看看错哪里了

2008-11-16 10:05
4273
我用的HTTPGET控件,
用就是用英文版yahoo搜索中文的时候有问题.貌似不是编码的问题,因为获得的源码里没有乱码。我试了一下,主要是中文的搜索参数不能传入,造成了搜索错误,但是不知道怎么解决,希望哪位兄弟能解答

procedure TForm1.Getr(Sender: TObject; Result: string);
begin
   memo1.Text:=UTF8Decode(Result);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   a:=thttpget.Create(self);
   a.URL:='http://search.yahoo.com/search?p=%E6%AD%8C%E6%89%8B';
   a.OnDoneString:= Getr;
   a.GetString;
end;

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 232
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
你没有设置Request的CharSet,所以获取不到中文。一般默认CharSet都是ISO-8859-1,改成UTF-8就可以了。

我没用过HTTPGET,就拿Indy演示了:
uses IdHTTP;

procedure TForm1.Button1Click(Sender: TObject);
var
  aIdHttp: TIdHTTP;
  tmpHTML: String;
begin
  aIdHttp := TIdHTTP.Create(Self);
  try
    aIdHttp.Request.AcceptCharSet := 'UTF-8';     //主要是这里
    tmpHTML := aIdHttp.Get('http://search.yahoo.com/search?p=%E6%AD%8C%E6%89%8B');
    Memo1.Lines.Text := tmpHTML;
  finally
    aIdHttp.Free;
  end;
end;

上面代码Indy9和10通用。附带的压缩包里有完整工程,要Delphi2009+Indy10才能编译。
上传的附件:
2008-11-17 12:14
0
游客
登录 | 注册 方可回帖
返回
//