-
XML und iSeries
Hallo,
hat jemand von Euch schon mal mit dem XML-Parser von IBM gearbeitet (XML4PR400) ? Ich bin gerade dabei eine Anwendung dafür zu schreiben. Habe auch schon die ersten XML-Daten damit auf die iSeries schaufeln können. Allerdings scheint der Parser immer nur die CCSID 37 zu verwenden, so dass die Umlaute nicht korrekt übertragen werden. Egal ob ich CCSID 273 oder irgendwas anderes angebe, ich bekomme einfach keine Umlaute korrekt dargestellt. Weiß jemand von Euch was ich da anders machen müsste ? Habt Ihr noch andere Erfahrungen mit diesem Parser gemacht ?
Gruß,
KM
-
Welche CCSID hat denn deine Quelldatei im IFS ?
Werden die Umlaute denn über WRKLNK und dann Anzeige mit 5 auf dem Dokument korrekt angezeigt ?
Ggf. mußt du die Daten in eine IFS-Datei mit korrekter CCSID umsetzen. Am besten geht das dann mit "FTP LOCALHOST".
-
Hallo Fuerchau,
ich habe die Dateien unter Windows mit der Option encoding="ISO-8859-1" erstellt. Sie haben im IFS die CCSID 850. Wenn ich sie in CCSID 273 konvertiere und mein Programm aufrufe, erhalte ich den Fehler MCH3601. Das scheint irgendein Pointer-Problem zu sein.
Sonst noch irgendwelche Ideen ?
KM
-
IFS UMLAUTE
Hallo KM,
mache doch einfach einen copy command und ändere dabei die
Codepage auf 1252 und Du hast die Umlaute. (Copy auf sich selbst).
Gruss TARASIK
-
Hallo Tarasik,
danke für den Tip. Hat mich jetzt aber auch nicht viel weiter gebracht. Ich habe die Datei wie beschrieben kopiert. Jetzt liegt sie mit CCSID 1252 vor. Ich sehe jetzt sowohl unter Windows, als auch im IFS die Umlaute. Wenn ich allerdings den Parser drüber laufen lasse, der die Daten in die DB2 Datei überträgt, werden die Umlaute wie folgt konvertiert:
ü -> }
ö -> ¦
Ä -> [
Was kann man da sonst noch einstellen ?
KM
-
Was kann man da sonst noch einstellen ?
- die CCSID der DB2 table
- die CCSID des Jobs
HTH + Guss
Rolf
-
Es gibt da noch irgendeine Option, die besagt, dass Sonderzeichen im XML mit den HTML-Formaten "ä." o.ä. angegeben werden müssen.
Ist das Nicht der Fall stimmt ggf. die Einstellung ISO-8859-1 nicht !
Siehe auch: http://www.ramsch.org/martin/uni/fmi-hp/iso8859-1.html
d.h., ASCII-Zeichen jeseits der 127 (x7f) dürfen nicht direkt angegeben werden.
Bei GOOGLE-Suche "ISO-8859-1" kommt eine ganze Menge.
Ggf. ist der Hexcode unter CCSID 850 (ASCII) / 1252 (ANSI) ein anderer als ISO-8859-1.
-
Such doch mal im Internet nach selfhtml. Dort gibts auch einen Abschnitt über xml. Und da ist auch beschrieben, dass Umlaute und noch ein paar weitere Zeichen ersetzt werden müssen.
Gruß
Bruno
-
Wenn ich in der Code-Tabelle ISO-8859-1 (siehe obigen Link) z.B. das "Ü" suche, hat dieses den Hexwert "DC" (Position 220) und muß ggf. als "& Uuml;" dargestellt werden.
-
Ich hab jetzt nochmal ein paar Sachen probiert. Ich glaube nicht, dass es am "encoding"-Teil in der XML-Datei liegt. Wenn ich "ISO-8859-1" angebe, kann ich das "ü" genau so eingeben und wird auch korrekt dargestellt. Gebe ich z.B. "UTF-8" an, was der Default-Wert ist, dann muß ich das Ersatzzeichen "ü" angeben, damit das Zeichen korrekt dargestellt wird. Beide Methoden führen zum gleichen Ergebnis.
Ich habe jetzt mal die Zeichen in der Codepage 37 gesucht und festgestellt, dass durch den XML-Parser jeweils genau das Pendant aus der Codepage 273 in meine DB2-Datei übertragen wird. Deshalb wird aus "ü" (Hex DC) dann "}" usw.
Jetzt muß ich nur noch herausfinden warum das passiert. Habe bereits meine DB2-Datei und auch die XML-Datei im IFS mit den unterschiedlichsten CCSIDs versehen, jedoch ohne Erfolg.
Vielleicht fällt Euch ja nochwas ein. Arbeitet denn keiner von Euch mit diesem Parser ???
Gruß,
KM
-
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
Similar Threads
-
By mom in forum IBM i Hauptforum
Antworten: 30
Letzter Beitrag: 22-01-07, 15:03
-
By vige1000 in forum NEWSboard Linux
Antworten: 4
Letzter Beitrag: 21-12-06, 11:56
-
By Kirsten Steer in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 11-12-06, 08:25
-
By Kilianski in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 18-10-06, 08:46
-
By Kirsten Steer in forum Archiv NEWSboard Events
Antworten: 0
Letzter Beitrag: 15-06-06, 07:45
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks