Table 8–1: Support For Multi-byte Characters
Product
|
Multi-byte Support
|
AppBuilder
|
The AppBuilder—except for the Character Run window—supports double-byte characters.
Widgets created with the AppBuilder can have double-byte characters in labels and in text.
The Character Run window does not support double-byte or triple-byte characters.
|
AppServer
|
The AppServer supports double-byte and triple-byte characters.
|
Application Compiler
|
The Application Compiler supports double-byte and triple-byte characters. That is, the 4GL source code that the Application Compiler compiles can contain double-byte and triple-byte characters, and the resulting r-code supports double-byte and triple-byte characters.
|
Clients (graphical, character, and batch)
|
The graphical client and the Unix character client support double-byte characters but not triple-byte characters.
The Windows character client does not support multi-byte characters.
The batch client (started with the command prowin32 -b ) supports multibyte.
|
Data Dictionary
|
The Progress Data Dictionary supports multi-byte characters.
|
DataServers
|
The DataServer for ORACLE supports double-byte characters if the ORACLE DBMS is set up for Native Language Support (NLS). For more information on NLS, see the ORACLE documentation.
The DataServer for ORACLE does not support UTF–8.
|
ESQL/C (SQL-89)
|
An ESQL/C program can have double-byte characters if the program’s main procedure defines an external integer variable with the name “CharSet,” and CharSet is assigned the name of the appropriate double-byte code page.
Valid names, which reside in the file sqlhli.h, which PSC provides as part of the ESQL/C source, are:
Japanese (128): SHIFTJIS_CHARSET or EUCJIS_CHARSET
Korean (129): HANGEUL_CHARSET
Simplified Chinese (134): GB2312_CHARSET
Traditional Chinese (136): CHINESEBIG5_CHARSET
Since Progress does not validate strings from ESQL/C programs, you must ensure that double-byte and triple-byte characters are not split.
|
HLC Applications
|
An HLC program can have double-byte and triple-byte characters.
Since Progress does not validate strings from HLC programs, you must ensure that multi-byte characters are formed correctly and that they are not split.
For example, Progress searches each character string for the NULL terminator. For each multi-byte character in the string, Progress searches only the lead byte. If the string ends in a multi-byte character and the NULL terminator resides (mistakenly) in a byte other than the position for a lead byte, Progress misses it and does not detect the end of the string correctly.
|
Procedure Editor
|
The Procedure Editor supports double-byte characters.
To write a multi-byte Progress 4GL application, you can use any text editor that supports multi-byte characters. That is, you can use a multi-byte Unicode editor if you prefer.
|
Report Builder
|
The Report Builder does not support double-byte or triple-byte characters.
|
SQL-89 Preprocessor
|
The SQL-89 Preprocessor supports multi-byte characters. Use the Language (-lng) startup parameter to specify the multi-byte code page for your program.
Specify the -LANGUAGE option and the appropriate code-page name in the Preprocessor startup command. You can abbreviate the -LANGUAGE option as -L. It accepts these values: CP850, BIG5, GB2312, KSC5601, and SHIFTJIS. Note that the code-page names have no dashes (BIG5 and SHIFTJIS, not BIG-5 and SHIFT-JIS) when you use them in the Preprocessor startup command. For example, the following command starts the Preprocessor and specifies BIG–5, a code page for Traditional Chinese:
If you do not specify the -LANGUAGE option, Progress uses the single-byte code page ibm850 as the default. This parameter setting is appropriate for all single-byte languages.
Your C compiler must use the same code page as the one you specify with the -LANGUAGE option.
|
SQL-92
|
SQL-92 supports double-byte and triple-byte characters.
|
Translation Management System
|
The Translation Management System can manage translations to and from languages that use double-byte code pages.
|
WebClient
|
WebClient supports double-byte characters but not triple-byte characters.
|