Japanese language in EBCDIC

Several mutually incompatible versions of the Extended Binary Coded Decimal Interchange Code (EBCDIC) have been used to represent the Japanese language on computers, including variants defined by Hitachi, Fujitsu, IBM and others. Some are variable-width encodings, employing locking shift codes to switch between single-byte and double-byte modes. Unlike other EBCDIC locales, the lowercase basic Latin letters are often not preserved in their usual locations.

The characters which are found in the double-byte Japanese code used with EBCDIC by IBM, but not found in the first edition of JIS X 0208, also influenced the vendor extensions found in some non-EBCDIC encodings such as IBM code page 932 ("DBCS-PC") and Windows code page 932.

Single-byte codes
Similarly to JIS X 0201 (itself incorporated into Shift JIS), Japanese EBCDIC encodings often include a set of single-byte katakana. Several different variants of the single-byte EBCDIC code are used in the Japanese locale, by different vendors; a given vendor may also define two different single-byte codes, one favoured for half-width katakana and one favoured for Latin script. Variants of EBCDIC favoured by a given vendor for use for katakana are sometimes referred to as EBCDIK, standing for Extended Binary-Coded Decimal Interchange Kana code.

Code pages incorporating half-width kana are an exception to IBM's EBCDIC invariant character set, which specifies a set of characters which are usually encoded the same across all EBCDIC code pages. Most notably, they sometimes include katakana characters at code points which are used for lowercase letters of the Basic Latin alphabet in the invariant set. Encoding of lowercase letters when katakana characters are included at those locations, and encoding of katakana characters when lowercase letters are retained in their usual locations, can vary between vendors, as shown below.

Microsoft Windows implements two Japanese single-byte EBCDIC variants, with code page numbers 20000 higher than IBM's code page numbers for its variants, as code pages 20290 (documented as IBM290, "IBM EBCDIC Japanese Katakana Extended") and 21027 ("Extended/Ext Alpha Lowercase"). Code page 21027 as implemented in Windows is an incomplete implementation, lacking two-way mappings for several letters and kana, and is currently deprecated.

IBM's code pages were later updated to include the Euro sign at 0xE1, retaining their original CPGID numbers, but being assigned new CCSID numbers. Hence, the CCSID 290 refers to the original version of code page 290, while the version of code page 290 with the Euro sign is also known as CCSID 8482. Similarly, CCSID 1027 refers to the original version of code page 1027, while the version of CPGID 1027 with the Euro sign is given the CCSID 5123.

Alongside versions of IBM's double-byte Japanese DBCS-Host code page (CPGID 300, CCSID 300 or 16684) as a double-byte component, IBM code page 290 is used as the single-byte component of the multi-byte code page IBM-930 and (as the Euro-updated CCSID 8482) the updated version IBM-1390. IBM code page 1027 is used as the single-byte component of the multi-byte code page IBM-939 and (as the Euro-updated CCSID 5123) the updated version IBM-1399.

In the following table, conformance to the invariant set is marked with green; collision with the invariant set is marked with red.

Double-byte codes
There are three double-byte character codes used for Japanese with EBCDIC: IBM code page 300 (also called IBM Kanji or IBM Japanese DBCS-Host) from IBM, KEIS from Hitachi, and JEF from Fujitsu. These are DBCS-Host encodings, using different shift codes to switch between single-byte EBCDIC and double-byte modes. Codes 0x41 through 0xFE (those used for graphic characters in EBCDIC) are used in pairs to represent characters from a 190×190 grid; code 0x40 (space in EBCDIC) is used doubled as an ideographic space, but not as part of any other double-byte code.

In the IBM version of the DBCS-Host code, the code 0x0F switches to single-byte mode and the code 0x0E switches to double-byte mode,    in common with IBM double-byte EBCDIC codes for other CJK languages, such as the EBCDIC version of Johab for Korean. In contrast to KEIS and JEF, the layout of IBM code page 300 is unrelated to JIS X 0208, and conversion between the two must be done via a table; however, its character repertoire has been kept up-to-date with successive revisions of JIS X 0208 so as to remain a superset of JIS X 0208's repertoire. Lead bytes 0x41 through 0x44 are used for non-Kanji characters, lead bytes 0x45 through 0x68 are used for Kanji characters, and lead bytes 0x69 through 0x89 are used for UDC (user-defined characters).

The existence of IBM's Japanese DBCS-Host code had impact beyond EBCDIC systems, since IBM also defined variants of Shift JIS ("DBCS-PC", defined in the pure double-byte Code page 301 and used in the variable width Code page 932 and Code page 942) and of EUC-JP which encode the entire repertoire of IBM code page 300, including 28 non-Kanji and 360 Kanji additional to those originally included in JIS X 0208 (although the non-Kanji because sign ∵ and not sign ￢ were later added to JIS X 0208 in 1983). These are referred to as "IBM-selected" characters and are included as extensions in, for example, Windows code page 932.

Some newer revisions of the IBM-300 code page add additional Kanji with lead bytes 0xB8 through 0xD5 and additional non-Kanji with lead bytes 0xD6 through 0xE9. This revision updated the set for JIS X 0213, including the Euro sign and, while retaining the CPGID 300, was assigned the new CCSID 16684. The code pages IBM-930 (with code page 290 as the single-byte set), IBM-931 (with code page 37 as the single-byte set), and IBM-939 (with code page 1027 as the single-byte set) exclude these additions, while IBM-1390 (with the Euro sign version of code page 290 / CCSID 8482) and IBM-1399 (with the Euro sign version of code page 1027 / CCSID 5123) include them.

In Hitachi KEIS (Kanji-processing Extended Information System), the sequence 0x0A 0x41 switches to single-byte mode and the sequence 0x0A 0x42 switches to double-byte mode. JIS X 0208 characters are encoded using the same byte sequences used to encode them in EUC-JP, i.e. with both bytes being between 0xA1 and 0xFE inclusive. This results in duplicate encodings for the —0x4040 per the DBCS-Host code structure, and 0xA1A1 as in EUC-JP. However, the lead byte range is extended back to 0x59, out of which the lead bytes 0x81–A0 are designated for user-defined characters, and the remainder are used for corporate-defined characters, including both kanji and non-kanji.

In Fujitsu JEF (Japanese-processing Extended Feature), 0x29 switches to single-byte mode and 0x28 switches to double-byte mode. Similarly to KEIS, JIS X 0208 codes are represented the same as in EUC-JP. Differing from KEIS, the JIS X 0208 edition used in this JEF zone is the original JIS C 6226:1978. The lead byte range is extended back to 0x41, with 0x80–A0 designated for user definition; lead bytes 0x41–7F are assigned row numbers 101 through 163 for kuten purposes, although row 162 (lead byte 0x7E) is unused. Rows 101 through 148 are used for extended kanji, while rows 149 through 163 are used for extended non-kanji.