Globalization

Because the PASE for i run time is based on the AIX® run time, PASE for i programs can use the same rich set of programming interfaces for locales, character string manipulation, date and time services, message catalogs, and character encoding conversions supported on AIX.

PASE for i supports the interfaces in AIX run time for managing the locale that an application uses and for performing locale-sensitive functions (such as ctype() and strcoll()), including support for both single-byte and multibyte character encoding.

PASE for i includes a subset of AIX locales, which provide support for a large number of countries and languages using industry-standard encoding (code sets ISO8859-x), code set IBM-1250, and code set UTF-8. PASE for i provides support for the Euro in three different ways: IBM-1252 locales and ISO 8859-15 locales (both of which use single-byte encodings), and UTF-8 locales.

Note: Locale support for PASE for i is independent of either form of locale support used by ILE C programs (object types *CLD and *LOCALE). In addition to internal structural differences, none of the existing shipped locales for ILE C programs supports ASCII.

Creating new locales

PASE for i does not ship a utility to create new locales. However, you can create locales for use in PASE for i on an AIX system with the localedef utility.

Changing locales

When an PASE for i application changes locales, generally it also should change the PASE for i CCSID (using the _SETCCSID() runtime function) to match the encoding for the new locale. This ensures that any character data interface arguments are correctly interpreted by PASE for i run time (and possibly converted when calling an EBCDIC system service). You can use the cstoccsid() runtime function to determine what CCSID corresponds to a code set name.

The PASE for i run time sets the CCSID tag on any file created by an PASE for i program to the current PASE for i CCSID value (supplied either when the program is started or using the most recent _SETCCSID() value).

You should use UTF-8 locales for PASE for i applications that support Japanese, Korean, Traditional Chinese, and Simplified Chinese. The IBM® i operating system includes other locales for these languages, but the system does not support setting the PASE for i CCSID to match the encoding for IBM-eucXX code sets. Using UTF-8 support might require converting file data that might be stored in other encoding schemes (such as Shift-JIS) when the application runs on other platforms.

Where PASE for i conversion objects and locales are stored

Conversion objects and locales for PASE for i are packaged with IBM i language feature codes. When you install PASE for i, only those locales that are associated with installed IBM i language features are created.

All PASE for i locales use ASCII or UTF-8 character encoding; therefore, all PASE for i run time works in ASCII (or UTF-8).