Entwickler-Ecke
Internet / Netzwerk - UTF8-Übertragung
Flamefire - Di 04.01.11 02:06
Titel: UTF8-Übertragung
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.
Delete - Di 04.01.11 02:08
Du brauchst Unicode-Komponenten zum Darstellen. Und einen Parser, der Unicode verarbeiten kann.
Flamefire - 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 - 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.
Delete - Di 04.01.11 05:42
Stimmt. Delphi 2009 kann ja schon Unicode (UTF-16).
jaenicke - Di 04.01.11 06:39
Martok hat folgendes geschrieben : |
| 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:
Delphi-Quelltext
1: 2: 3: 4: 5:
| {$ifdef UNICODE} 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).
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!