Wir senden und empfangen per MQ sowohl EBCDIC-Daten als auch UTF-8 und andere.
Die Änderung von fix EBCDIC auf variabel war relativ simpel; im DB-Sendefall stelle ich in die Felder MDENC die EBCDIC-CCSID und in MDCSI 0, und wenn ich IFS-Files sende, stelle ich in beide Felder die mit stat() festgestellte CCSID.
Und im Empfangsfall stelle ich fest, was ich bekommen habe und schreibe es entweder 1:1 mit der CCSID ins IFS oder, ggfs. übersetzt, in eine Datei.
(Die Felder MDENC und MDCSI stammen aus dem Copy QMQM/QRPGLESRC,CMQMDG.)
Aber natürlich muss sowas in Abstimmung mit der Gegenstelle erfolgen; das war in unserem Fall die größte Hürde. Aber irgendwann gelang es, sie zu überzeugen, dass UTF-8 -> EBCDIC -> UTF-8 keine gute Idee ist, und seitdem (ca. 2 Jahre) funktioniert das tadellos.