ihdttp ascii karakter sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 23
- Kayıt: 06 Tem 2009 04:27
ihdttp ascii karakter sorunu
S.a
İdhtpp ile bir websitesinin kaynak kodlarını çektiğimde gelen site linklerinde http://site.com/%20salih şeklinde oluyor gelen bu site linklerinin tekrar get ile kaynağını çekmeye çalıştıgımda %20 yüzünnden kaynak kodlarını çekemiyorum sizce sorunu nasıl geçebilirim ?
İdhtpp ile bir websitesinin kaynak kodlarını çektiğimde gelen site linklerinde http://site.com/%20salih şeklinde oluyor gelen bu site linklerinin tekrar get ile kaynağını çekmeye çalıştıgımda %20 yüzünnden kaynak kodlarını çekemiyorum sizce sorunu nasıl geçebilirim ?
Re: ihdttp ascii karakter sorunu
uses kımsına IdURI ekleyin:
şeklinde deneyin.
Kod: Tümünü seç
TIdURI.URLEncode(link);
There's no place like 127.0.0.1
-
- Üye
- Mesajlar: 23
- Kayıt: 06 Tem 2009 04:27
Re: ihdttp ascii karakter sorunu
Malesef sorunu çözemedi bende sizin kullandığınız kalıbı kullanıyordum yine ıöğşİ gibi karakterlerin ascii karşılıkları çıkmakta farklı bir çözüm sunabilir misiniz
Re: ihdttp ascii karakter sorunu
http://site.com/%20salih 'den http://site.com/ salih elde etmek isterseniz o zaman TIdURI.URLDecode kullanmalısınız
There's no place like 127.0.0.1
-
- Üye
- Mesajlar: 23
- Kayıt: 06 Tem 2009 04:27
Re: ihdttp ascii karakter sorunu
kullandım fakat sonuc yine aynı dilerseniz uygulamayı ö.m olarak atabilirim
Re: ihdttp ascii karakter sorunu
uses satırına httpapp ekleyip, showmessage(httpdecode(link)) olarak kullanabilirsin.
-
- Üye
- Mesajlar: 23
- Kayıt: 06 Tem 2009 04:27
Re: ihdttp ascii karakter sorunu
Malesef 2 yöntemdede sonuç alamadım delphi7nin unicode desteği olmaması çok acı
Re: ihdttp ascii karakter sorunu
Merhaba.
Konunun Delphi 7 ile ilgili olup olmadığı tartışılır... Çünkü fonksiyonu inceleyince göreceksiniz ki, aslında basit string operasyonları yapıyor.
IdURI UNIT'inin içindeki fonksiyonu aynen buraya yazıyorum. ismini çakışmasın diyerek dt_ prefix ile tanımladım....
Çözüm üretemediği örnek bir adres satırı verirseniz bu fonksiyondan yürüyerek dilediğiniz şekle dönüştürebiliriz.
Kullanımı :
Konunun Delphi 7 ile ilgili olup olmadığı tartışılır... Çünkü fonksiyonu inceleyince göreceksiniz ki, aslında basit string operasyonları yapıyor.
IdURI UNIT'inin içindeki fonksiyonu aynen buraya yazıyorum. ismini çakışmasın diyerek dt_ prefix ile tanımladım....
Çözüm üretemediği örnek bir adres satırı verirseniz bu fonksiyondan yürüyerek dilediğiniz şekle dönüştürebiliriz.
Kod: Tümünü seç
function dt_URLDecode(ASrc: string): string;
var
i: integer;
ESC: string[2];
CharCode: integer;
begin
Result := ''; {Do not Localize}
// S.G. 27/11/2002: Spaces is NOT to be encoded as "+".
// S.G. 27/11/2002: "+" is a field separator in query parameter, space is...
// S.G. 27/11/2002: well, a space
// ASrc := StringReplace(ASrc, '+', ' ', [rfReplaceAll]); {do not localize}
i := 1;
while i <= Length(ASrc) do begin
if ASrc[i] <> '%' then begin {do not localize}
Result := Result + ASrc[i]
end else begin
Inc(i); // skip the % char
ESC := Copy(ASrc, i, 2); // Copy the escape code
Inc(i, 1); // Then skip it.
try
CharCode := StrToInt('$' + ESC); {do not localize}
Result := Result + Char(CharCode);
except end;
end;
Inc(i);
end;
end;
Kod: Tümünü seç
Var
url, yeniurl : string;
begin
url := ' http://site.com/%20salih';
yeniurl := dt_URLDecode( url );
showmessage( yeniurl );
end;