View Full Version : XML und iSeries
UTF-8 ist ein Doppelbyte-Zeichensatz (CCSID 13488), daher die Probleme in der Darstellung bei UTF-8.
Ich glaube nicht, dass das ein Problem des Parsers ist sondern deiner Laufzeitumgebung.
Wie ist die CCSID deines Job's zur Laufzeit (sollte NICHT 65535 sein !) ?
Ist der Hexwert in deiner Datenbank (nach Übernahme) immer noch x'DC' bei CCSID 273 ?
Welche CCSID hat denn deine DB-File ?
Ich glaube ich habe jetzt die Lösung gefunden. Wenn die XML ganz normal unter Windows mit encoding="ISO-8859-1" erstellt wird und somit im IFS mit CCSID 850 vorliegt, dann muß ich folgende Einstellungen vornehmen:
Job-CCSID -> 37
DB2-CCSID -> 273
Damit werden die Daten korrekt in die Datei geschrieben. Der Job, der den Parser aufruft, muß also die CCSID 37 haben, während die Datei die CCSID 273 haben muß. Alle anderen Einstellungen führen zu einem falschen Ergebnis.
Ich weiß jetzt zwar auch nicht so recht warum das so funktioniert, aber Hauptsache es klappt jetzt.
Vielen Dank nochmal für Eure Hilfe !
KM
... Ich weiß jetzt zwar auch nicht so recht warum das so funktioniert ... die Regeln, was wann und wie umgesetzt wird, sind recht komplex. Es gibt ein Redbook dazu, das ich aber hier (beim Kunden) nicht habe.
Grundsätzlich gilt aber, dass alle Werte (Tabellen, stream files, Job, device, ...) gesetzt (d.h. *NICHT* x'FFFF' (=65535) sein *MÜSSEN*.
HTH
Rolf
Sven Schneider
04-02-04, 08:27
Eventuell noch ein Hinweis :
ISO-8859-1 hat im IFS ASCII-CCSID 819 (nicht 850).
Hier eine kleiner Auszug :
MIME Standard Character Set ASCII CCSID Description
ISO-8859-1 819 Latin-1
ISO-8859-2 912 Latin-2
ISO-8859-5 915 Cyrillic
ISO-8859-6 1089 Arabic
ISO-8859-7 813 Greek
ISO-8859-8 916 Hebrew
ISO-8859-9 920 Latin-5
ISO-8859-15 923 Latin-9 (Euro)
Sven
Hallo,
Es ist schon lange her, dass dieser Punk gemacht wurde, aber ich habe das gleiche Problem gehabt, und habe eine andere Lösung gefunden:
Bei der Api QxmlDOM_Document_createElement und QxmlDOM_Document_createTextNode benutze ich Qxml_CSSID273, und dann funktioniert ohne den CSSID der Job auf 037 zu setzen (Qxml_CSSID273 habe ich mit 273 definiert).
Jaime