AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi url decode / ansi / utf8 ?
Thema durchsuchen
Ansicht
Themen-Optionen

url decode / ansi / utf8 ?

Ein Thema von skyware · begonnen am 8. Jan 2008 · letzter Beitrag vom 8. Jan 2008
Antwort Antwort
skyware

Registriert seit: 11. Dez 2002
Ort: Wetzikon, Zürich
151 Beiträge
 
Delphi 6 Enterprise
 
#1

url decode / ansi / utf8 ?

  Alt 8. Jan 2008, 09:53
Hallo zusammen,

ich stehe vor dem Problem einen codierten String wieder in einen lesbaren String umzuwandeln.
Jedoch weiss ich nicht mit welcher Funktion ich diese "decodieren" muss.
Habe bereits folgende Funktionen verwenden, jedoch ohne Erfolg:

UTF8Decode
Utf8ToAnsi



Die Strings wären folgende:

'city_name=Etagni%C3%A8res'
'vorname[0]=Ren%C3%A9'

hat jemand eine Ahnung welche Funktion ich hier verwenden muss?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: url decode / ansi / utf8 ?

  Alt 8. Jan 2008, 10:53
Mit UFT8 hat das nichts zu tun, sondern es handelt sich um eine Art URL-Kodierung:
http://de.wikipedia.org/wiki/URL-Kod...25-Darstellung

Versuch's mal mit folgender Funktion:
Delphi-Quellcode:
function UnpackData(const Value: string): string;
var
   pSrc,pSrcEnd: PChar;
   pDst,pDstBeg: PChar;
begin
   SetLength(Result,Length(Value));

   if Length(Result) = 0 then
      Exit;

   pSrc := @Value[1];
   pSrcEnd := @Value[Length(Value)];

   pDstBeg := @Result[1];
   pDst := @Result[1];

   while pSrc <= pSrcEnd do
   begin
      if pSrc^ = '%then
      begin
         Inc(pSrc);
         HexToBin(pSrc,pDst,2);
         Inc(pSrc,2);
      end
      else
      begin
         pDst^ := pSrc^;
         Inc(pSrc);
      end;
      Inc(pDst);
   end;

   SetLength(Result,pDst-pDstBeg);
end;
Diese Funktion ist vollgestopft mit Zeigerarithmetik um eine möglichst hohe Geschwindigkeit zu erzielen.

PS: könnte natürlich sein, dass der dekodierte String in UTF8 kodiert ist. Dann müsste zusätzlich Utf8ToAnsi() oder ähnliches aufgerufen werden.
Andreas
  Mit Zitat antworten Zitat
skyware

Registriert seit: 11. Dez 2002
Ort: Wetzikon, Zürich
151 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: url decode / ansi / utf8 ?

  Alt 8. Jan 2008, 11:14
hallo shmia,

danke für Deine Hilfe, geholfen hat zusätzlich noch dein "PS" mit dem Utf8ToAnsi.

so funktionierts:

Delphi-Quellcode:
  xTest := 'city_name=Etagni%C3%A8res';
  xResult := Utf8ToAnsi(UnpackData(xTest));
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#4

Re: url decode / ansi / utf8 ?

  Alt 8. Jan 2008, 11:55
Zitat von shmia:
Mit UFT8 hat das nichts zu tun
Nicht ganz korrekt.
'c3 a9' stellt das als 2-Byte-UTF8 codierte Zeichen 'é' dar.

Der Rest bzgl. der URL-Codierung ist natürlich richtig.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz