Autor Beitrag
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Di 04.01.11 02:06 
Ich lade eine XML-Datei, die (u.U.) UTF-8 kodiert ist, aus dem Internet in einen String (mittels IdHTTP.Get)
Wenn ich mir die aber in einem Memo ausgeben lasse, sind die Umlaute "kaputt"
Wie kann ich das fixen?
Ich möchte die Datei dann später in einen XML-Parser reinhaun und die einzelnen Felder in Labels o.ä. ausgeben.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 04.01.11 02:08 
Du brauchst Unicode-Komponenten zum Darstellen. Und einen Parser, der Unicode verarbeiten kann.
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Di 04.01.11 02:40 
Hab Delphi 2009. Der benutzt doch WideStrings als Standart. Müsste das damit nicht gehn?
Will eigentlich nicht noch zusätzlich Komponenten verwenden, wenn nicht unbedingt nötig.
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Di 04.01.11 03:01 
UTF-8 ist nicht WideString, das ist UTF-16 ;)

Da gibts eine Funktion in der RTL für, UTF8To???, wie die genau heißt weiß ich grade nicht aus dem Kopf.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 04.01.11 05:42 
Stimmt. Delphi 2009 kann ja schon Unicode (UTF-16).
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 04.01.11 06:39 
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Da gibts eine Funktion in der RTL für, UTF8To???, wie die genau heißt weiß ich grade nicht aus dem Kopf.
Da gibt es genauer gesagt sogar zwei. Und zwar Utf8Decode (für Delphi <= 2007, danach als deprecated markiert) und Utf8ToString (für Delphi 2009+).

Deshalb benutze ich sowas:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  {$ifdef UNICODE} // ab Delphi 2009
  Result := Utf8ToString(MyUtf8String);
  {$else}
  Result := Utf8Decode(MyUtf8String);
  {$endif}
Zudem gibt es Utf8Decode erst ab Delphi 7 oder so, d.h. für ältere Versionen müsste ggf. noch einmal eine Unterscheidung rein (wenn der Code kompatibel sein soll).

Für diesen Beitrag haben gedankt: Martok