PDA

View Full Version : Unicode Daten ins IFS übertragen



SchoberS
16-01-08, 15:29
Hallo,

wie kann ich Daten einer PF auf der AS/400 die mit Unicode (13488) definiert ist (chinesische Zeichen sind drin) ins IFS (PC) übertragen.

Ich habe es mit CPYTOIMPF versucht, aber der Kopierbefehl bricht mit folgender Meldung ab :

Eigentumsrecht für Objekt QCPEXTEMPS in QTEMP Art *USRSPC geändert.
Datei QACP478647 in Bibliothek QTEMP erstellt.
Teildatei QACP478647 zu Datei QACP478647 in QTEMP hinzugefügt.
Eigentumsrecht für Objekt QACP478647 in QTEMP Art *USRSPC geändert.
Eigentumsrecht für Objekt QACEXFLD12 in QTEMP Art *USRSPC geändert.
Die IDs des codierten Zeichensatzes (CCSIDs) der Felder *N und DF0002
sind nicht verträglich.
Zeichenumsetzung zwischen CCSID 13488 und CCSID 65535 ungültig.
Keine Sätze aus Datei xxx, Bibliothek yyy, kopiert.
Objekt QACP478647 in QTEMP Art *FILE wurde gelöscht.
Wegen eines Fehlers Kopierbefehl beendet.

Danke.

Fuerchau
16-01-08, 15:48
Das ist nun mal gar nicht so einfach, da IFS-Dateien normalerweise SBCS-Daten sind.

Du kannst nur ggf. in UTF-8 (CCSID 1208) ausgeben, in der Hoffnung, dein Zielsystem versteht diese dann.

Ggf. klappt auch CPYTOSTMF ... DBFCCSID(13488) STMFCODPAG(13488) oder CPYTOIMPF ... STMFCODPAG(13488).

In diesem Fall enthält die IFS-Datei dann UCS-2, was dein Zielsystem auch wissen muss.

alfredo
17-01-08, 09:02
CPYTOIMPF STMFCODPAG(1208) funktioniert prinzipiell.
Es wird aber vorher eine Umsetzung auf den SBCS des Jobs gemacht. Das heisst, es werden nur die Zeichen für diese CCSID richtig umgesetzt. Bei gemischtsprachigen Daten funktioniert diese Methode nicht richtig.

Dann geht es aber mit Umkopieren in eine UTF8-Datei -> HEX-Datei und CPYTOSTMF CVTDTA(*NONE) STMFCODPAG(1208)

Fuerchau
17-01-08, 09:08
Das ist der Nachteil von CPYTOIMPF, der nunmal leider Jobeinstellungen verwendet.

CPYTOSTMF arbeitet unabhängig von den Jobeinstellungen.
Ich finde dies auch ziemlich bescheuert.

Meist helfe ich mir damit, die Daten erst per SQL aufzubereiten und per "Insert ... Select" in eine 65535-PF zu kopieren und dann eben CPYTOSTMF zu verwenden.
Und: Schneller als CPYTOIMPF ist das auch noch.