Einzelnen Beitrag anzeigen

michele_tedesco

Registriert seit: 19. Mär 2014
50 Beiträge
 
#5

AW: Delphi XE5 System Utf8Encode gibt ISO-8859-1 Format zurück

  Alt 10. Sep 2014, 13:21
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?
  Mit Zitat antworten Zitat