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

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

2008-11-16 10:05
4369
我用的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:='459K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4y4W2j5i4u0U0K9q4)9J5k6i4W2S2K9r3!0G2i4K6u0W2j5$3!0E0i4K6u0r3M7$3g2S2M7X3y4Z5i4K6y4r3M7q4)9K6c8q4)9J5y4f1f1$3i4K6t1#2b7f1c8Q4x3U0f1^5b7#2)9J5y4f1f1$3i4K6t1#2z5o6W2Q4x3U0f1^5b7W2)9J5y4W2)9J5x3K6x3&6i4K6y4n7i4K6y4n7
   a.OnDoneString:= Getr;
   a.GetString;
end;

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 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('b73K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4y4W2j5i4u0U0K9q4)9J5k6i4W2S2K9r3!0G2i4K6u0W2j5$3!0E0i4K6u0r3M7$3g2S2M7X3y4Z5i4K6y4r3M7q4)9K6c8q4)9J5y4f1f1$3i4K6t1#2b7f1c8Q4x3U0f1^5b7#2)9J5y4f1f1$3i4K6t1#2z5o6W2Q4x3U0f1^5b7W2)9J5y4#2)9J5z5g2)9K6b7R3`.`.
    Memo1.Lines.Text := tmpHTML;
  finally
    aIdHttp.Free;
  end;
end;

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