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