CFICU - Unicode and Code Page Support

#### Search Results

Search

# 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

- NTCFICU Macro Syntax

- Keyword Subparameters

- Example of CFICU Parameter

- Example of NTCFICU Macro

## 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.

### 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'

### On this page

- CFICU Parameter Syntax
- NTCFICU Macro Syntax
- Keyword Subparameters
- Example of CFICU Parameter
- Example of NTCFICU Macro