AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Delphi XE5 System Utf8Encode gibt ISO-8859-1 Format zurück

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

Ein Thema von michele_tedesco · begonnen am 10. Sep 2014 · letzter Beitrag vom 11. Sep 2014
Antwort Antwort
michele_tedesco

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

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

  Alt 10. Sep 2014, 12:26
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: http://www.url-encode-decode.com/

"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:
Utf8Encode('für');
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.475 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

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

  Alt 10. Sep 2014, 12:39
Und welchen Typ hat die Variable, der du das "Utf8Encode('für')" zuweist? Nicht, dass der Compiler dir hier ein UTF8 nach ANSI einbaut.
  Mit Zitat antworten Zitat
michele_tedesco

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

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

  Alt 10. Sep 2014, 13:05
Es geht um den variablen-Typ STRING. Ich nehme an an dass in XE 5 dies ein Widestring ist. korrekt?
Danke
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.692 Beiträge
 
Delphi 2007 Professional
 
#4

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

  Alt 10. Sep 2014, 13:35
Es geht um den variablen-Typ STRING. Ich nehme an an dass in XE 5 dies ein Widestring ist. korrekt?
Falsch.
Ein UnicodeString.
Uli Gerhardt
  Mit Zitat antworten Zitat
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, 14: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
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.635 Beiträge
 
Delphi 10.4 Sydney
 
#6

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

  Alt 10. Sep 2014, 14:33
Gibt es in Delphi XE5 eine Stadart-Funktion dafür oder muss man selber eine schreiben?
Ja, in IdURI.pas: TIdURI.URLEncode
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
michele_tedesco

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

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

  Alt 11. Sep 2014, 10:23
Vielen Dank
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf