CFICU - Unicode and Code Page Support

This Natural profile parameter is required to enable Unicode and code page support for various Unicode settings, for example, if variables with format U or the statement MOVE ENCODED are to be used. It corresponds to the NTCFICU macro in the Natural parameter module.

Possible settings See CFICU Parameter Syntax.
Default setting ON or OFF  Enables or disables the Unicode and code page support.

The default value is OFF when profile parameter CP is set to OFF. Otherwise, the default value is ON.

Dynamic specification yes The parameter CFICU can only be specified dynamically. In the Natural parameter module, the macro NTCFICU is used instead.
Specification within session no  

Notes:

  1. CFICU=ON is enforced when profile parameter CP is set to any value other than OFF.
  2. For further information, see Profile Parameters and Macros in the Unicode and Code Page Support documentation.

The following topics are covered below:


CFICU Parameter Syntax

The CFICU profile parameter is specified as follows:

CFICU=(ON,keyword-subparameter=value,keyword-subparameter=value,...)

Or:

CFICU=ON

Or:

CFICU=(OFF,keyword-subparameter=value,keyword-subparameter=value,...)

Or:

CFICU=OFF

See Keyword Subparameters.

NTCFICU Macro Syntax

The NTCFICU macro is specified as follows:

         NTCFICU ON,                                                   *
               CNVNORM=value,                                          *
               COLLATE=value,                                          *
               COLNORM=value,                                          *
               CPOPT=value,                                            *
               STEPLIB='value',                                        *
               DATITEM=value,                                          *
               LOCALE=value1_value2

Or:

         NTCFICU ON

Or:

         NTCFICU OFF

See Keyword Subparameters.

Keyword Subparameters

CNVNORM | COLLATE | COLNORM | CPOPT | DATITEM | LOCALE | STEPLIB | ARABICN

CNVNORM - Normalization before Conversion

CNVNORM=value activates/deactivates normalization before conversion.

Value Explanation
ON Enable normalization before conversion.
OFF Disable normalization before conversion.

Note:
When CNVNORM=OFF, the MOVE NORMALIZED statement can be used to normalize selected strings.

This is the default value.

Notes:

  1. The German character "ä", for example, can be represented in Unicode as U+00E4 or by using a combining character as U+0061, U+0308. Conversion to a code page considers the combined "ä" (U+0061 U+0308) as two code points and produces an "a" and a substitution character, if U+0308 is no valid character of the target code page. Normalization before conversion creates one code point U+00E4 from the combined code points U+0061 U+0308 and the subsequent conversion will deliver the result "ä".
  2. The parameter is honored whenever a conversion from U to A format is performed, for example MOVE U TO A or DISPLAY U, when the output device is a terminal emulation. The additional operation consumes of course additional storage as well as additional CPU time.

COLLATE - Collation Services

COLLATE=value determines the collation service used.

Value Explanation
ON Use Locale ID and ICU's collation services to compare Unicode strings.

This is the default value.

OFF Use ICU's simple Unicode compare.

Note:
Collation is the process of ordering units of textual information (alphabetic sorting). Collation is usually specific to a particular language.

Examples:

  • The character "Ä" is sorted in German locale between A and "B", but in Swedish locale it is sorted after "Z".

  • In Lithuanian, "y" is sorted between "i" and "k".

COLNORM - Normalization Check of Collation Services

COLNORM=value can be used to enable or disable the normalization check.

Value Explanation
ON Check for un-normalized text.
OFF Disable check for un-normalized text.

This is the default value.

Notes:

  1. Normalization is the process of removing alternate representations of equivalent sequences from textual data, to convert data into a form that can be binary-compared for equivalence. The ICU Collation Service handles un-normalized text properly, producing the same results as if the text were normalized. This maximizes performance for the majority of text that does require normalization. If Unicode data is known with certainty not to contain un-normalized text, then even the overhead checking for normalization can be eliminated.
  2. This subparameter is honored only if subparameter COLLATE is set to ON.

CPOPT - Fast Code Page Conversion

CPOPT=value can be used to optimize the conversion performance.

Value Explanation
ON Use internal translation tables instead of ICU functions, if possible.
OFF Use ICU functions in any case.

This is the default value.

Note:
By default, a conversion from alpha to Unicode format and vice versa is performed by calling ICU functions. Certain code pages are mapping characters to Unicode with 1:1 relationship. In this case, the conversion performance can be increased by using internal translation tables rather than ICU functions.

DATITEM - Load Method for ICU Data Items

DATITEM=value can be used to determine the method to load ICU data items under CICS and Com-plete. For information on ICU data items, see the relevant section in the Unicode and Code Page Support documentation.

Value Explanation
SVC The ICU data items are loaded with the SVC instruction of the operating system.
NONE The ICU data items are loaded with the functions provided by the TP system.

This is the default value.

Notes:

  1. If you use DATITEM=NONE under Com-plete, you must set the keyword parameter THREAD-ESQA-SIZE=15K (or a size greater than 15 KB) in the startup options for your Com-plete.
  2. If you use DATITEM=NONE under CICS, you must add one PPT entry for each ICU data item.

LOCALE - Locale ID

LOCALE=value1_value2 determines the Locale ID.

Value Explanation
value1_value2

value1 is a 2- or 3-byte language code of lower-case characters. If specified in upper case, it will be translated into lower case automatically.

value2 is a 2- or 3-byte region code of upper-case characters to classify the language.

en_US  This is the default value.

Note:
The Locale ID is used by ICU's Collation Service to consider language and even region-dependent features of collation. The language code of the Locale ID follows ISO639, and the region code follows ISO 3166.

Examples of Language Code and Region Code Pairs:

en_US English (United States)
en_UK English (United Kingdom)
de_DE German (Germany)
de_AT German (Austria)
de_CH German (Switzerland)
sv_SE Scandinavian (Sweden)

STEPLIB - Name of the Dataset (Containing the ICU Data Items) to be Dynamically Allocated

STEPLIB='dataset.name' can be used to define the name of an ICU data library.

'dataset.name' Explanation
3-44 characters The name of the dataset containing the ICU data items.

Validation rules for the dataset name specified by the STEPLIB parameter:

  • the dataset must exist.

  • the dataset name must be enclosed in ' ' - see example above.

  • the dataset name must conform to the z/OS naming conventions:

    • maximal length of 44 characters.

    • no special characters allowed.

    • must not be a High Level Qualifier i.e. must contain at least one dot '.'.

With ICS 321, data files provided by Software AG are not supported and only the minimal SAGICU and SAGICUA9 load modules will be delivered. These modules do not contain statically-linked localization data. ICU localization data is loaded only dynamically from a dataset containing the data items (collators, converters, etc.).

The dataset given by the CFICU STEPLIB parameter will be dynamically allocated only once by the first Natural session in a given TP system under the DD Card ICSxxxDD (xxx corresponds to ICS version) and used by all Natural sessions afterwards.

Note:
This functionality is only available with ICS 321.

ARABICN - add/remove NUM and HEX for Arabic Code Points

ARABICN=value can be used to add or remove the NUM and HEX character type definitions for the following code points from the Arabic code page IBM420: X'DF', X'EA', X'EB', X'ED', X'EE', X'EF', X'FB', X'FC', X'FD' and X'FE'.

Value Explanation
ON Removes the NUM and HEX character type definitions which results in ONLY the digits 0 - 9 having the character type NUMERIC.
OFF Restores the NUM and HEX character type definitions.

This is the default value.

Example of CFICU Parameter

CFICU=(COLNORM=ON,LOCALE='de_DE',STEPLIB='DATAITEMS.LOAD',ARABICN=ON)

Example of NTCFICU Macro

         NTCFICU COLNORM=ON,                                           *
               LOCALE=de_DE,                                           *
               STEPLIB='DATAITEMS.LOAD'