Enhanced Unicode Support

ITP/Server version 3.5.7 introduces new features that add support of Unicode characters to MAPs and existing models, without rewriting them. The table below shows which comparisons and functions are affected and how ITP/Server treats them internally.

Note

Enabling these options can cause models to behave differently. This can arise if comparisons are performed between C_CHAR (byte) and W_CHAR (Unicode) data, or if there are wordprocessor instructions mixed in with the text.

EnhancedUnicodeSupport

With the setting EnhancedUnicodeSupport in the ITP/Server Administrator you can control how text comparisons and other text related functions are handled. If this setting is enabled all comparisons and functions that perform a byte-wise comparison are automatically mapped to their character-based, Unicode aware equivalent when a model is executed.

The following mapping is applied:

Used in the model

Maps to ... when EnhancedUnicodeSupport is enabled

<

compare_characters

<=

compare_characters

=

compare_characters

<>

compare_characters

>=

compare_characters

>

compare_characters

text_fragment

fragment_of_characters

length

number_of_characters

uppercases

uppercase_of_characters

uppercase2

uppercase_of_characters

lowercase2

lowercase_of_characters

sort_text_array

sort_text_array_characters

sort_text_array_index

sort_text_array_index_characters

The model developer can use the pragma ("EnhancedUnicodeSupport"; ...) to override the setting EnhancedUnicodeSupport locally in the model.

EnhancedUnicodeMaps

With the setting EnhancedUnicodeMaps in the ITP/Server Administrator you can control how MAP indices are handled. If this setting is enabled all MAP indices are stored as Unicode and compared using the function compare_characters. Without this setting the characters used in MAP indices are limited to the character set Latin-1.

The model developer can use the pragma ("EnhancedUnicodeMap"; ...) to override the setting EnhancedUnicodeMaps in the ITP Model.

Note

This setting can only be changed before the first MAP element has been assigned. Any further changes after the first assignment will result in a fatal error.