5 Code Page Information

This chapter contains these topics:

5.1 Introduction

This chapter covers code page information for JD Edwards World Software and IBM's AS/400, iSeries, System i 5, System I, or IBM i series National Language Support. It is intended to explain some of the details behind IBM's National Language Support, how that facility interacts with JD Edwards World Software, and what our recommendations are. For more information about IBM's National Language Support contact IBM.

5.2 IBM's National Language Support

The IBM i supports either a single language (for example, German) or multiple languages (for example, German and French). The support for the system depends on the needs of the users, the configuration of the system, and the amount of storage available. For example, if your system supports a Swiss bank with users that speak French, Italian, German, English, Danish, and Norwegian, you can configure your system to support all of these languages concurrently (To support multiple languages concurrently, you must have adequate storage to install all secondary languages. You must also install the necessary hardware to support each language. In addition, you must have an application environment that supports data in these languages).

To allow this multiple language environment, executable objects (programs) and data are separated. There is one set of programs no matter how many languages a System i supports. Language specific data is stored in Message Files, Data Areas, Printer Files, Display Files, and Physical Files. As more languages are supported on a system, more data is stored for language specific text, therefore requiring additional storage capacity.

5.3 Character Sets

A Character Set is a group of displayable or printable characters. The Character Set used in North and South America and much of Europe is Character Set 697. This character set contains the "Roman" alphabetic characters, accented alphabetic characters, numerals 0 - 9 and some special characters.

5.4 Code Pages

A code page is an ordered assignment of characters from a character set to specific codes that can be stored and manipulated by a computer. For example in the U.S. English code page the character 'A' is assigned to hexadecimal code 'C1', the character 'a' is assigned to hex code '81' and the character '$' is assigned to hex code '5B'. Another term for code page is Coded Character Set Identifier (CCSID). The code page used in the U.S.A., Canada, Portugal and some other countries is CCSID 37. The code page used in the U.K. is CCSID 285. The code page used in France is CCSID 297. In most respects these code pages are the same, but there are a few significant differences. In both CCSIDs 37 and 297, the character '$' is assigned to hex code '5B', but in CCSID 285 the character '$' is assigned to hex code '4A' and the character '£' is assigned to hex code '5B'.

In most code pages based on the "Roman alphabet" the alphabetic characters a - z and A - Z, plus the numerals 0 - 9, and some special characters (+ < = > % & _ * . - / ; : ?) are always assigned to the same codes. These are referred to as the invariant character set. There is some variation in the assignment of other characters (accented alphabetic characters, other special characters like $ and £). This allows most text to be displayed without change, but means that some characters can be displayed incorrectly if there is inconsistency between data, job, and device.

5.5 Character Data Representation Architecture (CDRA)

CDRA is a method of ensuring that text data appears as it was intended. To accomplish this, the operating system is "aware" of language attributes in data and jobs. The operating system will convert the code for text characters from the CCSID of the data to the CCSID of the job on input operations like a database read. It will also convert the code for text characters from the CCSID of the job to the CCSID of the data on output operations like a database write. The purpose of CCSID conversion is to preserve the characters that are displayed.

5.6 Hardware Considerations

Output devices like display stations and printers typically support one character set. For example printers in North and South America and much of Europe support character set 697. In the device description for a display there are attributes related to language. The Keyboard language type identifies the keyboard layout. The Character Identifier gives the character set and code page supported by the device. In the following figure, the device is set up for the United States and Canada.

Figure 5-1 Display Device Description (DSPDEVD) output

Description of Figure 5-1 follows
Description of "Figure 5-1 Display Device Description (DSPDEVD) output"

5.7 User Jobs

Each user job has attributes related to language. In the following figure, the job is setup for the U.S.

Figure 5-2 Display Job Definition Attributes (DSPJOB) output

Description of Figure 5-2 follows
Description of "Figure 5-2 Display Job Definition Attributes (DSPJOB) output"

5.8 JD Edwards World Software

JD Edwards World Software is designed to fully comply with IBM's National Language Support strategy. The biggest change from national to multinational is that data files are coded to support CCSID conversion. Some changes have also been made to programs in the Install and Update processes to support the data and CDRA.

Language data is contained within files in JD Edwards World. For example, file F0083 contains text for the menus. One of the keys to this file is language. Other files with language preference keys are: F0004D, F0005D, F0012D, F0901D, F1201D, F9202, F9203, F9601D, F9220, F98302, and F98303.

5.9 Interaction between IBM i and JD Edwards World

Database files in JD Edwards World are tagged with CCSIDs at the field level to support CCSID conversion under CRDA. Most text characters need no conversion, because they are in the invariant character set.

There are some characters that do require conversion. The operating system handles this on input and output operations. For example, in a Spanish language record there is a character 'ñ' within some text. In the database file the field containing this text is coded with CCSID 37. Therefore the character is assigned to hex code '49'. When this record is read by a program run from a Spanish job with CCSID 284 the hex code for the character is changed from '49' to '6A', because in the code page for CCSID 284 the character 'ñ' is assigned to hex code '6A'. When this character is then displayed on a Spanish display device it appears as it was intended. If the conversion did not occur and the job sent the original hex code '49' to the display it would appear as '¦' on the Spanish display.

Since the operating system performs this CCSID conversion all text characters can be displayed correctly by any job that displays the data.

5.10 Exceptions

  • Some data fields are not considered to be text fields. An example of this is the Data Dictionary Item Name. This field is considered to be a control field and is encoded with CCSID 65535, which represents hex data. When a data field coded with CCSID 65535 is read by a job there is no CCSID conversion

  • There are some terminals that do not support the full character set for which JD Edwards World data is designed. These are typically used in Japan and support Double Byte Character Set data instead. JD Edwards World offers a double byte version of JD Edwards World for those who need it

5.11 Recommendations

  • Interactive jobs should use the same CCSID as that of the display device used. This allows the job to pass codes to the device in the code page for which the device was designed. These parameters can be set in the IBM user profile, which is the preferred method. This leaves the System i available to be set to other configurations that might be needed for non-JDE software requirements

  • Printers and display devices should handle the same code page

  • Emulation software, such as Client Access, Rumba and so on; should also match the code page for which the device was designed

  • CCSID values for JDE jobs should never be 65535 for Single Byte users

  • NLS System Values are:

    • QCCSID

    • QCHRID

    • QDECFMT

    • QCURSYM

    • QDATSEP

    • QIGC

    • QLEAPADJ

    • QKBDTYPE

    • QCNTRYID

    • QLANGID

    • QTIMSEP

    • QSRTSEQ