CCSID(*GRAPH) and CCSID(*UCS2) set the default graphic (*GRAPH) and UCS-2
(*UCS2) CCSIDs for the module. These defaults are used for literals, compile-time
data, program-described input and output fields, and data definitions that
do not have the CCSID keyword coded.
CCSID(*CHAR) sets the CCSID used for the module's character data at runtime.
CCSID(*GRAPH : *IGNORE | *SRC | number)
Sets the default graphic CCSID for the module. The possible values are:
*IGNORE
This is the default. No conversions are allowed between graphic and
UCS-2 fields in the module. The %GRAPH built-in function cannot be used.
*SRC
The graphic CCSID associated with the CCSID of the source file will
be used.
number
A graphic CCSID. A valid graphic CCSID is 65535 or a CCSID with the
EBCDIC double-byte encoding scheme (X'1200').
CCSID(*UCS2 : number)
Sets the default UCS-2 CCSID for the module. If this keyword is not
specified, the default UCS-2 CCSID is 13488.
number must be a UCS-2 CCSID. A valid UCS-2 CCSID has the UCS-2 encoding
scheme (x'7200'). For example, the UTF-16 CCSID 1200 has encoding scheme x'7200'.
If CCSID(*GRAPH : *SRC) or CCSID(*GRAPH : number) is specified:
Graphic and UCS-2 fields in externally-described data structures will
use the CCSID in the external file.
Program-described graphic or UCS-2 fields will default to the graphic
or UCS-2 CCSID of the module, respectively. This specification can be overridden
by using the CCSID(number) keyword on the definition of the field. (See CCSID(number | *DFT).)
Program-described graphic or UCS-2 input and output fields and keys are
assumed to have the module's default CCSID.
CCSID(*CHAR : *JOBRUN)
When CCSID(*CHAR:*JOBRUN) is specified, character data will be assumed
to be in the job CCSID at runtime. The character X'0E' will be assumed to
be a shift-out character only if the runtime job CCSID is a mixed-byte CCSID.
When CCSID(*CHAR : *JOBRUN) is not specified, character data will be assumed
to be in the mixed-byte CCSID related to the job CCSID. If the character
X'0E' appears in character data, it will be interpreted as a shift-out character.
This may cause incorrect results when character data is converted to UCS-2
data.
Note:
Specifying CCSID(*CHAR:*JOBRUN) does not change
the behaviour of the compiler with respect to character literals containing
X'0E'. When a character literal contains X'0E', the compiler will always
treat it as a shift-out character, independent of the CCSID(*CHAR) keyword.