![]() |
Delphi XE5 System Utf8Encode gibt ISO-8859-1 Format zurück
Hallo zusammen
Ich habe heute versucht ein String "für" in UTF8 zu encodieren. Dabei erhalte ich aber "f%FCr" zurück, anstatt "f%C3%BCr". Als Referenz für den "korrekten" UTF8 String habe ich folgende Seite verwendet: ![]() "f%FCr" entspricht dem Format ISO-8859-1 und nicht UTF-8. Wie gibt die Methode einen String mit dem falschen Format zurück?? Danke für eure Unrterstützung. Hier noch der Code:
Delphi-Quellcode:
Utf8Encode('für');
|
AW: Delphi XE5 System Utf8Encode gibt ISO-8859-1 Format zurück
Und welchen Typ hat die Variable, der du das "Utf8Encode('für')" zuweist? Nicht, dass der Compiler dir hier ein UTF8 nach ANSI einbaut.
|
AW: Delphi XE5 System Utf8Encode gibt ISO-8859-1 Format zurück
Es geht um den variablen-Typ STRING. Ich nehme an an dass in XE 5 dies ein Widestring ist. korrekt?
Danke :-) |
AW: Delphi XE5 System Utf8Encode gibt ISO-8859-1 Format zurück
Zitat:
Ein UnicodeString. |
AW: Delphi XE5 System Utf8Encode gibt ISO-8859-1 Format zurück
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:
Nun ist die Applikation auf XE5 portiert worden und muss somit mit Unicodestrings arbeiten.
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; Somit stimmmt der Teil
Delphi-Quellcode:
nicht mehr.
Result := Result+'%'+IntToHex(Ord(Help[J]),2);
Gibt es in Delphi XE5 eine Stadart-Funktion dafür oder muss man selber eine schreiben? |
AW: Delphi XE5 System Utf8Encode gibt ISO-8859-1 Format zurück
Zitat:
Delphi-Quellcode:
TIdURI.URLEncode
|
AW: Delphi XE5 System Utf8Encode gibt ISO-8859-1 Format zurück
Vielen Dank :-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 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 by Thomas Breitkreuz