[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Oct 2013
    Beiträge
    175
    Die Zeichenfolge am Anfang ist wahrscheinlich ein sogenannter "BOM", ein Byte Order Marker, den man bei UTF-8 eigentlich überhaupt nicht braucht, viele Leute aber trotzdem ausgeben (gut gemeint). Das ist für UTF-8 die Zeichenfolge x'EFBBBF'. Nachdem die Bank wusste, was das Problem ist, geben die das wahrscheinlich auch selber aus.
    http://de.wikipedia.org/wiki/UTF-8#Byte_Order_Mark

    Dieser BOM stört XML-SAX aber zum Glück nicht. Du musst es nicht entfernen. Extra ausprobiert.

    Ein großes Ü ist in UTF-8 x'C39C'. Wenn das nach Deinen Änderungen noch immer so in der Datei steht, die CCSID 1208 hat, sollte das auch mit XML-SAX funktionieren. Ich habe erfolgreich eine Sanktionsdatei importiert, die nicht nur Umlaute, sondern auch arabische Namen in Originalschreibweise drin hat.

    Du müsstest also nur die CCSID mit
    PHP-Code:
    CHGATR OBJ('/Dateiname')                                              
           
    ATR(*CCSID)                                           
           
    VALUE(1208
    ändern.

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Danke!
    habe nun versucht die Datei direkt von dem PC-Laufwerk zu lesen, geht auch! (irgendwo in den Unterlagen steht, die Datei müsse im IFS stehen, sie muß aber anscheinend nur 'erreichbar' sein.
    Also fällt das Kopieren und verändern der CCSID weg. Aber mit wrklnk betrachtet steht die Datei da trotzdem als 1252. Das, was vor dem 'eigentlichen' XML in der Datei steht ist deutlich länger als 2 Byte und beinhaltet u.a. den Dateinnamen (vermute ich mal.)
    Aufbau: 30 Byte Schmierzeichen dann JJJJ-MM-TT_C53_dieIban_EUR_14_00058.XML
    Mitlerweile weis ich, das die Datei NICHT von der Bank kommt sondern via SFirm ausgegeben wurde.

    Der CHGATR hat leider nix gebracht, das Pgm bricht nach wie vor ab, wenn er aus 'SONSTIGE GRÜNDE' stößt.
    Nein, er hat gar nicht funktioniert! (obwohl das anders gemeldet wird)
    Attribute wurden für 1 Objekte geändert. 0 Objekte wurden nicht geändert.
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  3. #3
    Registriert seit
    Oct 2013
    Beiträge
    175
    Das klingt seltsam.
    Vielleicht hat SFirm eine gute Antwort, warum sie ungültige XML-Dateien produzieren?

    Fakt ist jedenfalls, dass XML-SAX offenbar auf die CCSID Rücksicht nimmt; d.h. Du gute Chancen hast, dass Umlaute und dergleichen nicht stimmen werden.

    Darum würde ich das file trotzdem ins IFS kopieren und die CCSID korrigieren.

    Auch wenn dadurch die Chancen steigen, dass XML-SAX sich wegen ungültiger Zeichen aufregt. (Wenn z.B. ein "normaler", sprich ISO-8859-1, Umlaut im file auftauchen sollte. (Auch das gibt es, Leute kopieren einfach den Header inkl. UTF-8-Angabe irgendwoher und schreiben dann alles Mögliche in das file, nur nicht UTF-8.))

    Wenn Du SFirm nicht kontaktieren willst oder die ihre Ausgabe nicht korrigieren wollen, brauchst Du eh ein kleines Programmerl, das die Datei einliest und alles ab < ? XML in eine neue Datei ausgibt. (So seltsam geschrieben, weil sonst die künstliche Dummheit des Forenprogramms zuschlägt und den Beitrag abbricht.)

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das Forum ist nicht dumm, es erlaubt halt auch HTML-Tags, die auch mit "<" anfangen.
    XML-Reader sollten das Encoding im XML-Header erkennen und danach handeln.
    Natürlich muss die Datei reines XML enthalten. Ich scheitere auch schon mal daran (mit .NET), wenn nach dem letzte ">" am Ende der Datei noch Zeichen außer CRLF folgen.
    Ist kein Encoding im Header definiert, so wird meist irgend ein Default angenommen und somit UTF8 nicht korrekt behandelt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. CPYSPLF als pdf mit falscher CCSID
    By Moonwalker in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 14-11-13, 12:01
  2. CHG CCSID ?
    By Liebhoff in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 04-09-02, 09:27
  3. CCSID 65535
    By Atomik in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 02-08-02, 14:01
  4. CCSID für J.D.Edwards "OneWorld"?
    By thomsta in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 11-03-02, 15:14
  5. CCSID Problem
    By Arbi in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 13-10-01, 11:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •