![]() |
%20 in Leerzeichen Umwandeln
Hallo, ich möchte in kelines prog schriben mit dem ich Leerzeichen %20 umwandeln kann und anders rum wie amche cih das?
(Einen Lik umwandeln!!!)# Lg La.Reunion |
Re: %20 in Leerzeichen Umwandeln
|
Re: %20 in Leerzeichen Umwandeln
danke!
Mhh das verstehe ich nciht ganz kannst du mir ein beispiel dazu posten? |
Re: %20 in Leerzeichen Umwandeln
vll so (nicht probiert)
Delphi-Quellcode:
function URLEncode(URL: string): string;
var i:integer; URL2: string; begin URL2 := ''; for i := 0 to length(URL) - 1 do begin if URL[i] in ['a'..'z', 'A'..'Z', '.', '-', '_', '0'..'9'] {kontrolle erweitert...} then URL2 := URL2 + '%' + IntToHex(ord(URL[i]), 2) //in der Eile die umwandlung vergessen else URL2 := URL2 + URL[i]; end; //result vergessen result := URL2; end; |
Re: %20 in Leerzeichen Umwandeln
Naja, ich würde das nicht so einfach machen, weil das % Zeichen selber auch escape't werden kann. Wenn man ein % in der URL haben möchte, dann schreibt man %%, somit sollte eine URL von "%%20" falsch von dir verarbeitet werden. Auch fehlen dir dann z.B. die Punkte (%2F) etc. Geh lieber die Zeichenkette durch und bau alle Elemente mit % und einem 2-stelligem Hexadezimalwert um (es ist der ANSI Code des Zeichens angegeben) und ignorieren %% Zeichen. Dann biste auf der sicheren Seite.
|
Re: %20 in Leerzeichen Umwandeln
??! Mhhh ich hatte mir das irgendwie unkomplizierter vorgestellt :-)
|
Re: %20 in Leerzeichen Umwandeln
@muetze1:ist das auf meinen oder auf arbu mans bezogen?
meine funktioniert imho so wie bei php urlencode bzw rawurlencode |
Re: %20 in Leerzeichen Umwandeln
Hallo,
wer die Indy-Komponenten verwendet, der kann die Methoden UrlEncode() und UrlDecode() von TIdURI (V9) benutzen um die percent escapes zu erstellen oder aufzulösen. Grüße vom marabu Edit: ich hänge mal die eine Zeile Code unauffällig hier rein, damit der schwungvolle thread nicht abrupt zum Halten kommt:
Delphi-Quellcode:
Das Prozentzeichen muss übrigens %25 codiert sein - %% habe ich im Standard nicht entdecken können.
uses
IdURI; function URLDecode(uri: String): String; begin Result := TIdURI.URLDecode(uri); end; |
Re: %20 in Leerzeichen Umwandeln
Ich hatte da mal eine Funktion geschrieben. Allerdings war das ne Arbeit von 5 Minuten oder so, weil ich mal schnell eben eine brauchte. Es sind deshalb auch keine Kommentare vorhanden.
Delphi-Quellcode:
Falls irgendwas näher erklärt werden soll, einfach nachfragen. Aufgerufen wird das Ganze so:
function TranslateURL(URL: string; Encode: bool): string;
var i: integer; tmp: string; begin result := 'ERROR'; i := 1; tmp := ''; URL := LowerCase(URL); if not Encode then while i <= Length(URL) do begin if (URL[i] = '%') and (URL[i+1] in ['0'..'9', 'a'..'f']) and (URL[i+2] in ['0'..'9', 'a'..'f']) then begin tmp := tmp + chr(StrToInt('$' + Copy(URL, i+1, 2))); inc(i, 2); end else tmp := tmp + URL[i]; inc(i); end; if Encode then while i <= Length(URL) do begin if URL[i] in ['0'..'9', 'a'..'z', '.', '-', '_'] then tmp := tmp + URL[i] else tmp := tmp + '%' + IntToHex(ord(URL[i]), 2); inc(i); end; result := tmp; end;
Delphi-Quellcode:
MfG Brainstalker
Encode:
URL := TranslateURL(URL, true); Decode: URL := TranslateURL(URL, false); [Edit] , hinzugefügt :oops: [Edit2] jetzt sollte das mit Encode stimmen. |
Re: %20 in Leerzeichen Umwandeln
Zitat:
bei der kodierung nicht die großbuchstaben vergessen... (sry hab das lowercase übersehen) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz