[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.963
    Wenn das Programm auf der AS/400 läuft, ist ja nicht gesagt, dass die IFS-Datei automatisch die korrekte CCSID erhält.
    Über WRKLNK kann man sich die Attribute der Datei (CCSID) sowie den Inhalt auch HEX anzeigen.
    Die Frage ist hier, in welchem Hex-Code die Zeichen denn in die IFS-Datei geschrieben werden. Probier das doch einfach mal mit einer konstanten Zeichenfolge aus, die alle Zeichen enthält "?ABCD!". Damit bist du sicher, was genau passiert. Vielleicht wird ja auch das "?" von der Java-Funktion als Steuerzeichen interpretiert ?
    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

  2. #2
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.017
    Ich habe jetzt herausgefunden wo der Fehler lag. Und zwar wird beim Einlesen eines Feldes des RecordSets mit der Methode getString() automatisch versucht in die Codepage der zugrundeliegenden Plattform zu konvertieren. Im vorliegenden Fall hat das Programm versucht das Feld aus der SQL-Server-Datenbank in die EBCDIC-Codepage 273 zu konvertieren, da das Java-Programm über meine iSeries-Sitzung gestartet wurde. Und da es diese Sonderzeichen in der EBCDIC-Codepage nicht gibt, wurden sie in Fragezeichen konvertiert. Als ich das Programm mal in einer Windows-Umgebung laufen ließ, wurden die Zeichen korrekt übernommen.
    Jetzt habe ich das Programm so geändert, dass der neue String gleich mit der richtigen Codepage erstellt wird. Das sieht dann folgendermaßen aus:

    alter Code:
    beschreibung = sql_rs.getString(1).trim();

    neuer Code:

    byte ba = sql_rs.getString(1).getBytes("Cp1252");
    beschreibung = new String(ba);

    Damit funktioniert's jetzt auch auf der iSeries. Tja, das sind halt so die Anfängerfehler. Nur drauf kommen muß man erst mal :-)

    Gruß,
    KM

Berechtigungen

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