Preparing for code page conversion with channels

CICS® supports character conversions with the z/OS® conversion services.

Before you begin

If you are preparing for code page conversions that involve Unicode data, see Unicode data conversion by z/OS

About this task

The conversion of data to or from either UTF-8 or UTF-16 and EBCDIC and ASCII code pages, depends on the selection of suitable conversion images. Conversion between the UTF-8 and UTF-16 forms of Unicode is also supported.
See the relevant appendix in z/OS Unicode Services User's Guide and Reference for the conversions that are supported though these services. These conversions include the ability to convert between a broad range of character encodings, including EBCDIC, ASCII, and Unicode.
Note:
  1. The conversion between 037 and 500, as used, for example, with the IBM® MQ transport, is an EBCDIC to EBCDIC conversion resulting from small differences in the character encodings used by CICS and IBM MQ.
  2. Not all points in each code page have direct counterparts in other code pages, for example the EBCDIC character NL. Java™ and z/OS conversion services might differ in the conversions that they perform. Technotes and other Internet discussions might offer guidance on particular points. Programming communities themselves are divided on the question of what is the more appropriate conversion in particular circumstances.

CICS now supports any of these character conversions by using the z/OS conversion services. Earlier releases of CICS used a set of tables to carry out conversions, and conversions that use those tables continue to be supported. If CICS needs to carry out a conversion between a pair of CCSIDs that are not supported by these tables, the z/OS conversion services are used.

Ensuring that required conversion images are available
Those CCSIDs used as part of CICS applications must be made known to the system programmers responsible for maintaining the z/OS Conversion Image, so that specific conversions are available to the CICS regions where these applications execute.
Handling CCSID 1200
CICS supports conversions involving UTF-16 data using any of the following CCSIDs: 1200, 1201, and 1202. The z/OS conversion services permit CCSID 1200, in its big-endian form, to be used, but does not contain support for the little-endian form or for CCSIDs 1201 or 1202. CICS transforms any source data that is identified in any of these unsupported forms to the big-endian form of 1200 before passing the data to z/OS for conversion. If the target data is one of the unsupported forms then CICS receives the data as the big-endian form of 1200 and transforms it to the required CCSID. If the target CCSID is 1200 then CICS assumes the encoding to be in big-endian form. If the conversion is between any of these CCSIDs then CICS will carry out the transformation without calling the z/OS conversion services.

When setting up the z/OS conversion image for conversions involving any of these forms of UTF-16 then CCSID 1200 must be specified. CCSIDs 1201 and 1202 will not be recognized by z/OS when attempting to create a conversion image.

CICS respects the byte order marker for inbound conversions, but is not able to retain that information when handling a related outbound conversion. All outbound data for CCSID 1200 is UTF16- BE . Application programmers need to know about this and perform their own BE to LE conversions if they so require.

Java programs
Code page conversion facilities exist within Java , so it is not necessary to duplicate these in CICS . The conversion facilities described here do not extend to Java programs. For an example, see Putting data into a container.