Einzelnen Beitrag anzeigen

urdelphist

Registriert seit: 20. Sep 2007
14 Beiträge
 
#1

ClientDataSet mit XML und UTF8

  Alt 29. Sep 2017, 13:23
Hallo,
ich verwende XE3 und UTF8-kodierte XML Dateien und lese diese Mittels XMLDocument, XMLTransformProvider und ClientDataSet ein, sodaß alle Data-Aware Komponenten so funktionieren, als würden die Daten aus einer Datenbank stammen (XML ist ja dann quasi eine). Für den XMLransformProvider wurden die entsprechenden Transformations-Dateien (XTR) mit XMLMapper erzeugt.
Funktioniert soweit wie erwartet, aber leider nicht, wenn Umlaute ins Spiel kommen.
Ich habe einiges ausprobiert, aber noch keine Möglichkeit gefunden, die fehlerhafte Anzeige in den TDBEdit Komponenten zu beseitigen. Es werden die Umlaute (manchmal erst beim zweiten Laden!) korrekt dargestellt. Wenn nicht, werden die UTF8-Entsprechungen angezeigt also zum Beispiel statt "äää" im XML wird "äää" angezeigt. Wenn man in dieses Feld klickt wird daraus unmittelbar "äää". Nachdem der Fokus dieses Feld verlässt, wird dort "���" angezeigt. Die Werte werden aber korrekt in die Datenbank übernommen. Allerdings nur in diesem Feld. Alle anderen, die Umlaute enthalten werden falsch kodiert zurückgeschrieben.
Bin mir noch nicht sicher, wo genau die Konvertierung bzw. der Fehler stattfindet. Vielleicht sind es die visuellen Komponenten. Die automatisch erzeugten Felder für das ClientDataSet sind vom Typ TStringField. Diese Klasse hat ein Feld Value, welches vom Typ AnsiString ist.

Für Hilfe wäre ich sehr dankbar.
  Mit Zitat antworten Zitat