Do you understand what code pages are?
An "A" in EBCDIC will translate to an "A" in ASCII without any problem, but a lot of the possible byte configurations translate not so well.
Data is of the form of character, packed decimal and binary; character data translate well, packed and binary does not.
You have to decide, either transfer without translation and the receiver will have to translate the character data or transfer with translation and the sender will have to "un-binarize" and un-pack the numeric date.
Your choice, what'ch go'na do?
Joined: 23 Nov 2006 Posts: 19270 Location: Inside the Matrix
To successfully and easily transmit mainframe data to unix (or windows) make sure that the file to be transmitted is entirely in text format.
Due to the way individual bytes are converted from EBCDIC to ASCII you will get erroneous/unpredictable results if you transmit any packed or binary data.
Several bit patterns translate into ascii control characters and the target system does not know a "real" control character from a "fake" one. One of the most common is an embedded x'09' (which happens often in packed numbers) and is a tab-character on many target systems.
There are not many applications that do this any more, but if your application chose to use bit-switches (because there were a high number of fields whose value was restricted to yes/no, and disk space was expensive then), those will not transmit correctly.
To repeat, you will be way ahead if you expand all of your numbers on the mainframe and send a clean file to the ascii system.