Hallo,

ich habe (mal wieder) ein Problem mit Code-Pages/EBCDIC.

Mein Arbeitsverzeichnis liegt in einem IFS-Verzeichnis ( Root:/WORKDIR ). Ich rufe auf der AS400 eine Shell-Sitzung auf (QSH) und erstelle in einem Shell-Script eine neue Datei. Die eigentliche Ausgabe erfolgt mit AWK.
Das Script selber editiere ich mit meinem Windows-Editor in diesem Verzeichnis.

Soweit so gut. Das Shell-Script kann ich mit meinem PC und auf der AS400 anzeigen und im Klartext sehen. Wenn ich die Datei mit WRKLNK anzeige, sehe ich die CCSID 1252.
Das Script erzeugt eine neue Datei, diese kann ich auf der AS400 mittels cat anzeigen, sehe auf meinem Windows-PC aber nur Binärdaten. Die CCSID dieser Datei ist 273. Also, clever wie ich bin, habe ich die Datei dann mittels CHGATR auf 1252 geändert.
Das Ergebnis: In der QSH-Session UND auf dem PC sehe ich Binärdaten ?!?!

Man kann das Problem umgehen, indem eine leere Datei mit dem PC angelegt wird, und die neue Datei immer als Kopie dieser leeren Datei angelegt wird, anstatt neu durch das Script:

#cp EMPTY_BASE.txt NEWFILE.txt
#cat SOMEFILE | awk '/.../ { ... }' >> NEWFILE.txt

Aber warum ist das so??

Viele Grüße
Michael