UDM - IBM i Codepage - CCSID Mappings

IBM i Codepage - CCSID Mappings

Information that is stored, moved, and displayed on IBM i has a CCSID (Coded Character Set IDentifier) number associated with it. UDM uses these CCSID numbers, where appropriate, when creating data files, transferring data, and storing data.

Each language available on IBM i has an associated CCSID. The CCSID identifies the mapping of numeric representations associated with each letter or symbol represented by the computer. It also identifies the glyphs required to represent those characters and symbols when displayed. UDM is not concerned about the display aspect of a CCSID or the associated data, only about the mapping between these numeric representations.

Code pages provide one mechanism of mapping (translating) between these numeric representations. Another means of representing these mappings is to use two CCSIDs: one for the data origin and another for the data destination. For example, when writing data to a file on IBM i, the data stream being sent to the file has an associated CCSID and the file itself has an associated CCSID. In this way, the operating system knows how to provide the translation between data to be written to a file and the data that is physically on the disk file.


IBM i

For UDM on IBM i, the data stream CCSID is established via the code page to CCSID mapping file which is controlled by the UDM Manager CODEPAGE_TO_CCSID_MAP configuration option and the UDM Server CODEPAGE_TO_CCSID_MAP configuration option.


Of course, the translation also works the other way around, when data is read from a disk, it is translated from the physical disk back to the data stream. One special CCSID is 65535, which indicates that no translation is to take place.

When transferring data between computer systems, UDM allows the specification of a code page for each system.

For example:

open source=winsys45 user=id1 pwd=mypwd codepage=iso8859\-1
destination=os400trex user=id2 pwd=newpwd codepage=IBM037

This tells UDM that the two code pages iso8859-1 and IBM037 are to be used for mapping data between the two systems.

Very often, the numeric portion of a code page also is a CCSID to which the code page relates. In this case, the numeric representations represented by the code page are the same as those represented by the CCSID. One example of this common identification is the code page IBM037 and the CCSID 037. This code page and CCSID represent the native numeric representation of data under IBM i.

The default code page for UDM is IBM037. This is the internal code page, as well as the default external code page used for the control session and data session, unless overridden by the configuration file or the CODEPAGE parameter on the open command (data session only).

CCSID Mapping

In order to get data to and from a file with a given CCSID, a corresponding CCSID matching the data session code page must be used in order to map the data correctly.

The data stream CCSID is mapped from the code page via the code page to CCSID mapping table. By default, internal tables provide this mapping; however, see the UDM Manager CODEPAGE_TO_CCSID_MAP configuration option or the UDM Server CODEPAGE_TO_CCSID_MAP configuration option regarding setting up an external file.

If a mapping cannot be made, the following occurs:

  1. Warning is issued to the user.
  2. Copy operation fails.

ASCII code pages can map to CCSIDs that are available in the HFS file system but not the LIB file system. If one of these code pages is used, a different warning should be issued that lets the user know that the mapping will work for HFS, but the behavior in the LIB file system is indeterminate.

The following table contains those mappings.

Note

If a code page contains a dash ( - ) in the name (for example, ISO8859-1), an underscore ( _ ) must replace the ( - ) when the code page is used in a UDM script.

Code Page

CCSID

HFS

LIB

IBM037

037

(tick)

(tick)

IBM273

273

(tick)

(tick)

IBM277

277

(tick)

(tick)

IBM278

278

(tick)

(tick)

IBM280

280

(tick)

(tick)

IBM284

284

(tick)

(tick)

IBM500

500

(tick)

(tick)

IBM1047




IBM1140

1140

(tick)

(tick)

IBM1141

1141

(tick)

(tick)

IBM1142

1142

(tick)

(tick)

IBM1143

1143

(tick)

(tick)

IBM1144

1144

(tick)

(tick)

IBM1145

1145

(tick)

(tick)

IBM1146

1146

(tick)

(tick)

IBM1147

1147

(tick)

(tick)

IBM1148

1148

(tick)

(tick)

ISO8859-1

819

(tick)


ISO8859-2

912

(tick)


ISO8859-4

914

(tick)


ISO8859-5

915

(tick)


ISO8859-6

1089

(tick)


ISO8859-7

813

(tick)


ISO8859-8

916

(tick)


ISO8859-9

920

(tick)


ISO8859-13

921

(tick)


ISO8859-15

923

(tick)


PC437

437

(tick)


PC737

737

(tick)


PC775

775

(tick)


PC850

850

(tick)


PC852

852

(tick)


PC855

855

(tick)


PC857

857

(tick)


PC860

860

(tick)


PC861

861

(tick)


PC862

862

(tick)


PC863

863

(tick)


PC864

864

(tick)


PC865

865

(tick)


PC866

866

(tick)


PC869

869

(tick)


PC874

874

(tick)


WIN1250

1250

(tick)


WIN1251

1251

(tick)


WIN1252

1252

(tick)


WIN1253

1253

(tick)


WIN1254

1254

(tick)


WIN1255

1255

(tick)


WIN1256

1256

(tick)


WIN1257

1257

(tick)


WIN1258

1258

(tick)