Gut
Jetzt bin ich schon Mal schlauer.
Dazu kommt noch, dass das Ziel der Funktion ist ein UTF8 string in ein
Unicode-String umzuwandeln.
Der "alte" Code in Delphi 2007 verarbeitete
ANSI Strings folgendermassen:
Delphi-Quellcode:
function UrlEncode(EncodeStr : STRING): STRING;
var I,J : INTEGER;
Help : AnsiString;
begin
Result := '';
for I := 1 to Length(EncodeStr) do begin
if EncodeStr[I] in ['0'..'9','a'..'z','A'..'Z','$','-','_','.','+','!','*','(',')'] then
Result := Result+EncodeStr[I]
else begin
Help := Utf8Encode(EncodeStr[I]);
FOR J := 1 TO LENGTH(Help) DO
Result := Result+'%'+IntToHex(Ord(Help[J]),2);
end; (* else *)
end;
end;
Nun ist die Applikation auf XE5 portiert worden und muss somit mit Unicodestrings arbeiten.
Somit stimmmt der Teil
Result := Result+'%'+IntToHex(Ord(Help[J]),2);
nicht mehr.
Gibt es in Delphi XE5 eine Stadart-Funktion dafür oder muss man selber eine schreiben?