Limitations
The displaying of Unicode texts is limited. Features such as combining characters, Arabic cursive connection, and bidirectional algorithm are not fully implemented.
CHR, NUM and # still work in old locale-dependent internal encodings (ROMAN8 & SJIS). They return different results in different locales. They are obsolete; their use is only for maintaining backward compatibility. For example, ((CHR 154)+(CHR 223)) or its equivalent (#154#223) displays a Japanese character with Unicode code 22756 (hex 58E4) on a Japanese locale and two Latin characters on other locales. To avoid problems and to display the same character regardless of locale, use Unicode versions of these functions: (UCHR 22756), (UCHR '58E4'), #u22756, or #ux58E4.
Combinations of # and CHR to compose 2-byte characters and symbols are not allowed. For example, ((CHR 154)+#223) does not work.
Strings that begin with (CHR 255) are icons and are not encoded in UTF-8. Pre-2007 CoCreate Drafting versions let you compose icons using a large variety of combinations (for example #255'abc'#212+CHR 12). In version 2007, only CHRs can be used to compose icons.
MI files of versions prior to 2.90 that do not contain encoding information in their info section (~1) load correctly only if loaded in the same locale as they were drawn. For example, you have 2 options to correctly load a Japanese MI file of version 2.80 in English Creo Elements/Direct Drafting:
1. Load the file in japanese locale and store it back in new format:
CHANGE_LOCALE 'ja'
LOAD 'japanese.mi'
STORE MI ALL DEL_OLD 'japanese.mi'
CHANGE_LOCALE 'en'
2. Load the MI file in a text editor and manually add section ~1 at the beginning of MI file:
#~1
ENCODING:SJIS
Such files load correctly in any locale.
AI modules call internal Creo Elements/Direct Drafting functions and use strings in internal encoding. Before CoCreate Drafting 15.00 (2007) these strings were encoded in ROMAN8 or SJIS, depending on locale. Compatibility is maintained only for characters in range [0, 127]. If AI modules use characters in a different range, they must be changed and recompiled to support UTF-8.
Was this helpful?