Einzelnen Beitrag anzeigen

shmia

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

Re: url decode / ansi / utf8 ?

  Alt 8. Jan 2008, 11: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