Unicode Compatibility Issues

Earlier versions of Uniface used the Uniface meta character set as its internal character set. Uniface 9 uses Unicode as its internal character set. For compatibility reasons, the meta character set is still used, but this results in some problems. Assignment settings are available to solve these issues.

Missing Characters in Unicode

Some characters exist in meta character sets but not in Unicode.

Uniface Meta Characters Missing in Unicode
Meta Character Code Description
Font2,46 Superscript right arrow
Font2,47 Superscript slash
Font2,58 Superscript infinity
Font2,59 Superscript pi
Font2,60 Superscript left angle
Font2,62 Superscript right angle
Font2,63 Superscript delta
Font3,93 Greenlandic capital K
Font7,46 Bottle1

Characters in Font 0, 1, 2, 3, 4 and 7 are shared for all the installable character sets. For more information, see Meta Character Sets.

Incorrectly Returned Mappings

Some characters have two entry points in the meta character set. For example, symbol ± appears in Font1,49 and Font7,93. However, in Unicode, there is only one code (x00B1) to represent ±. Therefore, both Font1,49 and Font7,93 are mapped to Unicode x00B1 internally inside Uniface. When x00B1 is mapped back to the meta character set, x00B1 can be only mapped to one code and Uniface chooses to map it to Font1,49. It can be undesirable to have Font1,49 returned instead of Font7,93.

Compatibility Assignment Settings

Uniface provides the following assignment section and settings to solve these issues.

Note:  The Uniface implementation of Traditional Chinese character set doesn't involve the meta character set. The following settings are not applicable for Traditional Chinese character set.

Assignment Section and Settings for Unicode Limitations
Section/Setting Description
[META_CharSet] Specify your own mappings between the meta character set and Unicode.
  • If an old application contains the meta characters that are missing in Unicode, map them to Unicode code points that are not used in the application.
  • If characters in an installable character set are missing in Unicode, use this section to make your own mappings.
  • If characters in an installable character set are duplicated in the meta character set and Uniface's default mapping results in error in the installable character set, such as the ± symbol, define your own mappings.
$EXTENDED_SYNTAX For the extended characters (~& or ~@) in the field syntax definition.
  • If the database only supports Unicode BMP, set $EXTENDED_SYNTAX=BMP.
  • If your application contains the meta characters that are missing in Unicode, set $EXTENDED_SYNTAX=v8.
$FULL_SYNTAX For the FUL shorthand code for field syntax.
  • If the database only supports Unicode BMP, set $FULL_SYNTAX=BMP.
  • If your application contains the meta characters that are missing in Unicode, set $FULL_SYNTAX=v8.