Using national-character figurative constants
You can use the figurative constant ALL
national-literal in a context that requires national characters. ALL
national-literal represents
all or part of the string that is generated by successive concatenations
of the encoding units that make up the national literal.
About this task
You can use the figurative constants QUOTE
, SPACE
, HIGH-VALUE
, LOW-VALUE
, or ZERO
in
a context that requires national characters, such as a MOVE
statement,
an implicit move, or a relation condition that has national operands.
In these contexts, the figurative constant represents a national-character
(UTF-16) value.
When you use the figurative constant QUOTE in a context that requires national characters, and the QUOTE compiler option is in effect, its value is NX'0022'. If the APOST compiler option is in effect, its value is NX'0027'.
When you use the figurative constant HIGH-VALUE
in
a context that requires national characters, its value is NX'FFFF'
.
When you use LOW-VALUE
in a context that requires
national characters, its value is NX'0000'
.
Restrictions: You
must not use HIGH-VALUE
or the value assigned from HIGH-VALUE
in
a way that results in conversion of the value from one data representation
to another (for example, between USAGE DISPLAY
and USAGE
NATIONAL
). X'FF'
(the
value of HIGH-VALUE
in an alphanumeric context when
the EBCDIC collating sequence is being used) does not represent a
valid EBCDIC character, and NX'FFFF'
does
not represent a valid national character. Conversion of such a value to another representation
results in a substitution character being used (not X'FF'
or NX'FFFF'
).
Consider the following example:
01 natl-data PIC NN Usage National.
01 alph-data PIC XX.
. . .
MOVE HIGH-VALUE TO natl-data, alph-data
IF natl-data = alph-data. . .
The IF
statement above
evaluates as false even though each of its operands was set to HIGH-VALUE
.
Before an elementary alphanumeric operand is compared to a national
operand, the alphanumeric operand is treated as though it were moved
to a temporary national data item, and the alphanumeric characters
are converted to the corresponding national characters. When X'FF'
is
converted to UTF-16, however, the UTF-16 item gets a substitution
character value and so does not compare equally to NX'FFFF'
.
Converting to or from national (Unicode) representation
Comparing national (UTF-16) data
Figurative constants (Enterprise COBOL for z/OS® Language Reference)
DISPLAY-OF (Enterprise COBOL for z/OS Language Reference)
Support for Unicode: Using Unicode Services