[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.016
    Jetzt habe ich die Lösung zu meinem Problem gefunden. Ich weiß zwar nicht, ob es die beste ist. Aber sie funktioniert zumindest. Hier ein Ausschnitt aus dem Code:

    HexFieldDescription hfd_empfaenger = new HexFieldDescription(new AS400ByteArray(100), "Empfänger");
    RecordFormat dataFormat = new RecordFormat();
    dataFormat.addFieldDescription(hfd_empfaenger);
    DataQueue dq = new DataQueue(as400, "/QSYS.LIB/DTOBJ.LIB/EMAILANGEB.DTAQ");
    DataQueueEntry DQData = dq.read(-1);
    while (true){
    Record data = dataFormat.getNewRecord(DQData.getData());
    AS400Text textConverter1 = new AS400Text(empfaenger_len, 13488, as400);
    dq_ba = (byte) data.getField("Empfänger");
    empfaenger = (String) textConverter1.toObject(dq_ba);

    Entscheidend hierbei ist, dass die Daten als Byte-Array eingelesen werden. Deshalb die HexFieldDescriotion. Außerdem ist noch ein Converter nötig (hier die Klasse AS400Text), mit dem man die Daten aus dem Byte-Array gemäß angegebener CCSID (hier 13488 für Unicode) wieder in einen String konvertiert. Beachtet werden muß, dass die Länge immer doppelt so groß angegeben werden muß als Zeichen vorhanden sind, da ja pro Zeichen 2 Byte belegt werden.

    Gruß,
    KM

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    UCS2 und UTF-16 sind grundsätzlich verscheiden !
    UCS2 ist ein fixer 2-Byte-Code.
    UTF-16 ist ein variabler 1-2-Byte-Code.

    @KM
    Ich denke auch Java wird irgendwo einen String-Converter haben um aus Byte-Arrays einen String bzw. umgekehrt zu machen (Dieter Bender kennt das vielleicht).
    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

  3. #3
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.016
    Hallo Deficiency,

    Du hast Recht. Wenn ich folgendes angebe

    empfaenger = new String(empfaenger_ba, "UTF-16");

    dann erhalte ich das korrekte Ergebnis. Daran hatte ich noch gar nicht gedacht. Somit brauche ich dann den Konverter AS400Text aus der Toolbox nicht mehr.

    Danke,
    KM

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    @KM
    Versuche das bitte auch mal mit Umlauten und anderen Sonderzeichen !!!
    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

  5. #5
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.016
    Hallo Fuerchau,

    das klappt sogar mit Latin-2-Zeichen (polnisch, tschechisch, etc.). Ich schreibe diese Texte dann in eine HTML-Datei. Wichtig dabei ist nur, dass beim OutputStreamWriter als Charset "UTF-8" angegeben wird und in der HTML-Datei beim charset auch. Damit klappt dann auch die Anzeige der Zeichen im Browser sofort, ohne eine andere Zeichencodierung wählen zu müssen.

    Ist echt super. Man muß nur wissen wie's funktioniert. Und das herauszufinden kostet halt immer extrem viel Zeit :-(

    Gruß,
    KM

  6. #6
    Registriert seit
    Sep 2005
    Beiträge
    40
    HI KM!


    Freut mich das ich dir helfen konnte!!!! Hatte so ein ähnliches Problem auch!!
    Super das das funktioniert!!!

    Gruß
    Deficiency

Similar Threads

  1. Dataqueue auslesen über OLE-DB
    By schwenth in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 27-06-05, 14:18
  2. Druckausgabe mit Unicode
    By KM in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 12-04-05, 10:57
  3. Unicode?
    By miro in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 13-10-04, 13:47
  4. iSeries und UNICODE
    By KM in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 03-09-04, 12:46
  5. Verarbeiten geschlüsselte DataQueue nach FIFO
    By B.Hauser in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 02-04-04, 10:27

Berechtigungen

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