![]() |
url decode / ansi / utf8 ?
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 :wall: 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? :gruebel: |
Re: url decode / ansi / utf8 ?
Mit UFT8 hat das nichts zu tun, sondern es handelt sich um eine Art URL-Kodierung:
![]() Versuch's mal mit folgender Funktion:
Delphi-Quellcode:
Diese Funktion ist vollgestopft mit Zeigerarithmetik um eine möglichst hohe Geschwindigkeit zu erzielen.
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; PS: könnte natürlich sein, dass der dekodierte String in UTF8 kodiert ist. Dann müsste zusätzlich Utf8ToAnsi() oder ähnliches aufgerufen werden. |
Re: url decode / ansi / utf8 ?
hallo shmia,
danke für Deine Hilfe, geholfen hat zusätzlich noch dein "PS" mit dem Utf8ToAnsi. :thumb: so funktionierts:
Delphi-Quellcode:
:-D
xTest := 'city_name=Etagni%C3%A8res';
xResult := Utf8ToAnsi(UnpackData(xTest)); |
Re: url decode / ansi / utf8 ?
Zitat:
'c3 a9' stellt das als 2-Byte-UTF8 codierte Zeichen 'é' dar. Der Rest bzgl. der URL-Codierung ist natürlich richtig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 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-2025 by Thomas Breitkreuz