[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2003
    Beiträge
    80

    CPYTOIMPF UTF-8

    Nach der Umstellung auf V5R4 wollte ich eine Datei in UTF-8 kopieren.
    Basis ist CCSID(13488)
    CPYTOIMPF FROMFILE(WASPXMLG) TOSTMF(&PATH) +
    MBROPT(*REPLACE) +
    STMFCODPAG(1208) RCDDLM(*CRLF) STRDLM(*NONE)

    Zu meinem Erstaunen setzt er nur die Zeichen laut aktueller Jobumgebung richtig um. Er geht also vor der Umsetzung auf UTF-8 von Unicode auf Single-Byte zurück.
    Oder bin ich blöd?

  2. #2
    Registriert seit
    May 2002
    Beiträge
    1.121
    Ich tippe mal das er unter 5.4 generell Probleme hat. Wie ich schon in einem anderen Beitrag erwähnt habe, habe ich bei einem Kunden ein ähnliches Problem. Ich habe dann erst einmal das Programm auf den CPYTPSTMF umgestellt.

    Mal sehen was sich in den nächsten Tagen dazu ergibt. Vielleicht ist es ja doch nur ein BUG.

    Gruß Ronald

  3. #3
    Registriert seit
    Mar 2003
    Beiträge
    80
    Ich wollte noch ergänzen, es ist kein Problem nach Umstellung von V5R3(wir sind von V5R2 umgestiegen).
    Daher habe ich es erst jetzt probiert.
    Wie könnte es mit CPYTOSTMF funktionieren, 13488 akzeptiert er bei mir nicht als Von-CCSID?

    lg

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Das klappt mit ein paar Umwegen:

    Lege eine PF mit CCSID 1208 an, das wird unterstützt.
    Per SQL mit
    insert into TBL1208
    select * from TBL13488
    die Daten kopieren.

    CSV-Daten kann man per
    trim(char(mynum)) concat ';' concat trim(mychar) concat ';'
    zusammenbauen.

    Die neue Datei hat nun CCSID1208-Daten.

    Erstelle eine weitere PF mit CCSID 65535 (ohne Source) und kopiere per CPYF FMTOPT(*NOCHK) die Daten.
    Diese Datei kannst du dann per CPYTOSTMF ausgeben.
    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
    Registriert seit
    Mar 2003
    Beiträge
    80
    Danke!

    Ich war schon auf der Schiene SQL.
    Wollte das im Programm lösen(SQLCSR), aber das hab ich nicht hingekriegt, gab immer Fehler.

    Mit Insert INTO FILEUTF (select * from FILEUCS2)
    und CPYTOSTMF CVTDTA(*NONE) funzt es.

    <Data ss:Type="String">Принтер</Data>


    Selbst wenn man ein CPYTOIMPF von 1208 auf 1208 macht, erfolgt scheinbar eine Zwischenumwandlung auf die JOB-CCSID.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Ich vermute, dass CPYTOIMPF ganz normale Leseroutinen verwendet und da erfolgt nun mal automatisch die Umwandlung.

    Wenn man das per Programm macht, muss man die Felder explizit mit einer CCSID versehen.
    Die reine automatische I/O-Definition (bei F-Bestimmungen) scheint da nicht zu reichen (ich habs mit V5R3 ausprobiert).

    Mit embedded SQL kannst du die Felder manuell mit CCSID oder als externe Struktur definieren (wenn die externen Felder CCSID's haben), dies geht allerdings nur in SQLRPGLE.
    Dann müsste es klappen.
    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. cpytoimpf die ...
    By malzusrex in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 14-12-06, 17:20
  2. CPYTOIMPF - Leerzeichen am Ende?
    By mott in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 09-10-06, 11:28
  3. CPYTOIMPF Format
    By Muchi in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 03-08-06, 09:41
  4. CPYTOIMPF Ergebnis nicht lesbar
    By SUBUIS in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 09-05-06, 09:36
  5. CPYTOIMPF und CCSID
    By Muchi in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 21-04-06, 13:54

Berechtigungen

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