Technical Blog Post
Abstract
Need to copy a file with French Canadian characters to another platform.
Body
Do you have a need to send a file that has French Canadian characters (or any other accented character) from a mainframe (EBCDIC format) to a Unix (ASCII) platform or Windows (ASCII)?
The default XLATE table does not convert the accented characters to the desired character on the Unix or Windows node. In fact there are other characters such as square brackets ( [ ] ) and curly braces ( { } ) that do not translate correctly in the default translate table if the data is translate with a code page other than IBM-037 on the mainframe.
Code page UTF-8 is accepted as a universal code page between all platforms. And ASCII is UTF-8. But there can still be issue when trying to translate special character, especially accented letters when going to from the mainframe to the Unix or Window platform which are usually double-byte characters.
Code page ISO8859-1 can be used to translate into single byte characters correctly. The IBM mainframe code page that is the same as the ISO8859-1 is IBM-819.
This way you can do the conversion on the mainframe before the data is transmitted to the Unix or Windows node. The sysopts coded on the FROM portion of the COPY statement would be coded as:
SYSOPTS="CODEPAGE=(IBM-037,IBM-819)"
Send the file with no additional translation. The TO portion of the COPY statement would be coded as:
Unix:
SYSOPTS=":XLATE=NO:STRIP.BLANKS=NO:DATATYPE=BINARY:"
Windows
SYSOPTS="XLATE(NO) STRIP.BLANKS(NO) DATATYPE(BINARY)"
To copy a file with French Canadian character from C:D for z/OS to C:D for Unix:
COPYPROC PROCESS -
PNODE=#PNODE -
SNODE=CDC1SFGT
COPYDSN COPY FROM (PNODE DSN=&CDINDS DISP=SHR -
SYSOPTS="CODEPAGE=(IBM-285,IBM-819)" ) -
TO (SNODE DSN=&CDOUTDS -
SYSOPTS=":DATATYPE=TEXT:XLATE=NO:STRIP.BLANKS=NO:") -
COMPRESS EXTENDED
There is no need for a codepage on the Unix because the translation has been accomplished on the mainframe before transmitting the file to the Unix node.
UID
ibm11123635