MIME / IANA | IBM037 |
---|---|
Alias(es) | cp037, ebcdic-cp-us, ebcdic-cp-ca, ebcdic-cp-wt, ebcdic-cp-nl, csIBM037 [1] |
Classification | EBCDIC |
Transforms / Encodes | ISO/IEC 8859-1 |
Other related encoding(s) | EBCDIC 37-2, 500, 924, 1047, 1140 |
Code page 37 (CCSID 37; label IBM037
), [1] known as "USA/Canada - CECP", is an EBCDIC code page used on IBM mainframes and midrange computers. It encodes the ISO/IEC 8859-1 repertoire of graphic characters.
Code page 37 is one of the most-used and best-supported EBCDIC code pages. It is used as the default z/OS code page in the United States and other English speaking countries. [2] It is considered the "required" EBCDIC code page for the United States, [3] and also used in Australia, New Zealand, the Netherlands, Portugal and Brazil, and on ESA/390 systems in Canada, [4] but not on Canadian AS/400 systems, which use Code page 500 instead. [5] It is one of four EBCDIC code pages (alongside 500, 875 and 1026) with mapping data supplied by Microsoft to the Unicode Consortium, [6] and one of seven (alongside 273, 424, 500, 875, 1026 and 1140) supported by Python as standard. [7]
Code page 37 exists in two versions: [8] : 5·2 a "base character set" or "DP94" version (GCSGID 101 with CPGID 37, or CCSID 8229), containing only 94 graphical characters (plus the space and control codes), [9] [8] : 5·15 and a "CECP" (Country Extended Code Page) version (GCSGID 697 with CPGID 37, or CCSID 37) with expansions to support the entire ISO/IEC 8859-1 repertoire. [4] [8] [10] : 5·17
Code page 37 [11] [12] [8] | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | NUL | SOH | STX | ETX | SEL | HT | RNL | DEL | GE | SPS | RPT | VT | FF | CR | SO | SI |
1x | DLE | DC1 | DC2 | DC3 | RES/ ENP | NL | BS | POC | CAN | EM | UBS | CU1 | IFS | IGS | IRS | IUS/ ITB |
2x | DS | SOS | FS | WUS | BYP/ INP | LF | ETB | ESC | SA | SFE | SM/ SW | CSP | MFA | ENQ | ACK | BEL |
3x | SYN | IR | PP | TRN | NBS | EOT | SBS | IT | RFF | CU3 | DC4 | NAK | SUB | |||
4x | SP | NBSP | â 00E2 | ä 00E4 | à 00E0 | á 00E1 | ã 00E3 | å 00E5 | ç 00E7 | ñ 00F1 | ¢ 00A2 | . 002E | < 003C | ( 0028 | + 002B | | 007C |
5x | & 0026 | é 00E9 | ê 00EA | ë 00EB | è 00E8 | í 00ED | î 00EE | ï 00EF | ì 00EC | ß 00DF | ! 0021 | $ 0024 | * 002A | ) 0029 | ; 003B | ¬ 00AC |
6x | - 002D | / 002F | Â 00C2 | Ä 00C4 | À 00C0 | Á 00C1 | Ã 00C3 | Å 00C5 | Ç 00C7 | Ñ 00D1 | ¦ 00A6 | , 002C | % 0025 | _ 005F | > 003E | ? 003F |
7x | ø 00F8 | É 00C9 | Ê 00CA | Ë 00CB | È 00C8 | Í 00CD | Î 00CE | Ï 00CF | Ì 00CC | ` 0060 | : 003A | # 0023 | @ 0040 | ' 0027 | = 003D | " 0022 |
8x | Ø 00D8 | a 0061 | b 0062 | c 0063 | d 0064 | e 0065 | f 0066 | g 0067 | h 0068 | i 0069 | « 00AB | » 00BB | ð 00F0 | ý 00FD | þ 00FE | ± 00B1 |
9x | ° 00B0 | j 006A | k 006B | l 006C | m 006D | n 006E | o 006F | p 0070 | q 0071 | r 0072 | ª 00AA | º 00BA | æ 00E6 | ¸ 00B8 | Æ 00C6 | ¤ 00A4 |
Ax | µ 00B5 | ~ 007E | s 0073 | t 0074 | u 0075 | v 0076 | w 0077 | x 0078 | y 0079 | z 007A | ¡ 00A1 | ¿ 00BF | Ð 00D0 | Ý 00DD | Þ 00DE | ® 00AE |
Bx | ^ 005E | £ 00A3 | ¥ 00A5 | · 00B7 | © 00A9 | § 00A7 | ¶ 00B6 | ¼ 00BC | ½ 00BD | ¾ 00BE | [ 005B | ] 005D | ¯ 00AF | ¨ 00A8 | ´ 00B4 | × 00D7 |
Cx | { 007B | A 0041 | B 0042 | C 0043 | D 0044 | E 0045 | F 0046 | G 0047 | H 0048 | I 0049 | SHY | ô 00F4 | ö 00F6 | ò 00F2 | ó 00F3 | õ 00F5 |
Dx | } 007D | J 004A | K 004B | L 004C | M 004D | N 004E | O 004F | P 0050 | Q 0051 | R 0052 | ¹ 00B9 | û 00FB | ü 00FC | ù 00F9 | ú 00FA | ÿ 00FF |
Ex | \ 005C | ÷ 00F7 | S 0053 | T 0054 | U 0055 | V 0056 | W 0057 | X 0058 | Y 0059 | Z 005A | ² 00B2 | Ô 00D4 | Ö 00D6 | Ò 00D2 | Ó 00D3 | Õ 00D5 |
Fx | 0 0030 | 1 0031 | 2 0032 | 3 0033 | 4 0034 | 5 0035 | 6 0036 | 7 0037 | 8 0038 | 9 0039 | ³ 00B3 | Û 00DB | Ü 00DC | Ù 00D9 | Ú 00DA | EO |
CECP additions not part of the base set. |
The CECP code pages, including code page 37, were modified in 1986. [13] The post-1986 version is sometimes referred to as code page 37 "version 1" [14] ("037/1"), [8] : 5·17 while the previous version is referred to as code page 37 "version 0", [14] [15] or alternatively as code page 1070. [15] Four positions differ between version 1 and version 0. [14] These 1986 modifications brought the CECP character repertoire in sync with ISO 8859-1. [10] The changes affect only the CECP expansions; the 94-character base set is unchanged between both versions.
The differing portion of the older version is shown below; the remainder is the same as the current code page 37. The character at 0xE1 is a numeric (figure) space, [13] [16] although it was also used as a mapping for the control code U+009F ( APC in ECMA-48). [13]
Code page 37/0 (1070), bytes 0xB0–EF [16] [17] [10] | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
Bx | ^ 005E | £ 00A3 | ¥ 00A5 | · 00B7 | ƒ 0192 | § 00A7 | ¶ 00B6 | ¼ 00BC | ½ 00BD | ¾ 00BE | [ 005B | ] 005D | ¯ 00AF | ¨ 00A8 | ´ 00B4 | ‗ 2017 |
Cx | { 007B | A 0041 | B 0042 | C 0043 | D 0044 | E 0045 | F 0046 | G 0047 | H 0048 | I 0049 | SHY | ô 00F4 | ö 00F6 | ò 00F2 | ó 00F3 | õ 00F5 |
Dx | } 007D | J 004A | K 004B | L 004C | M 004D | N 004E | O 004F | P 0050 | Q 0051 | R 0052 | ı 0131 | û 00FB | ü 00FC | ù 00F9 | ú 00FA | ÿ 00FF |
Ex | \ 005C | FSP 2007 | S 0053 | T 0054 | U 0055 | V 0056 | W 0057 | X 0058 | Y 0059 | Z 005A | ² 00B2 | Ô 00D4 | Ö 00D6 | Ò 00D2 | Ó 00D3 | Õ 00D5 |
Differences from code page 37/1. |
Since CP 037 contains all of the standard Latin-1 characters, it is possible to translate the character codes from the CP 037 charset to ISO 8859-1 character codes, so that translation back to the CP 037 charset is an exact value-preserving round-trip conversion. Likewise, half of the control character codes can be translated into their exact ASCII equivalents. If the remaining EBCDIC-only control characters are translated (arbitrarily) into the remaining unused ASCII codes points (hex 80 to 9F) as well, the resulting translation covers all of the 256 character code points. Such a translation table is shown below:
CP 037 → ISO 8859-1 | ||||||||||||||||
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
0_ | 00 | 01 | 02 | 03 | 9C | 09 | 86 | 7F | 97 | 8D | 8E | 0B | 0C | 0D | 0E | 0F |
1_ | 10 | 11 | 12 | 13 | 9D | 85 | 08 | 87 | 18 | 19 | 92 | 8F | 1C | 1D | 1E | 1F |
2_ | 80 | 81 | 82 | 83 | 84 | 0A | 17 | 1B | 88 | 89 | 8A | 8B | 8C | 05 | 06 | 07 |
3_ | 90 | 91 | 16 | 93 | 94 | 95 | 96 | 04 | 98 | 99 | 9A | 9B | 14 | 15 | 9E | 1A |
4_ | 20 | A0 | E2 | E4 | E0 | E1 | E3 | E5 | E7 | F1 | A2 | 2E | 3C | 28 | 2B | 7C |
5_ | 26 | E9 | EA | EB | E8 | ED | EE | EF | EC | DF | 21 | 24 | 2A | 29 | 3B | AC |
6_ | 2D | 2F | C2 | C4 | C0 | C1 | C3 | C5 | C7 | D1 | A6 | 2C | 25 | 5F | 3E | 3F |
7_ | F8 | C9 | CA | CB | C8 | CD | CE | CF | CC | 60 | 3A | 23 | 40 | 27 | 3D | 22 |
8_ | D8 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | AB | BB | F0 | FD | FE | B1 |
9_ | B0 | 6A | 6B | 6C | 6D | 6E | 6F | 70 | 71 | 72 | AA | BA | E6 | B8 | C6 | A4 |
A_ | B5 | 7E | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 7A | A1 | BF | D0 | DD | DE | AE |
B_ | 5E | A3 | A5 | B7 | A9 | A7 | B6 | BC | BD | BE | 5B | 5D | AF | A8 | B4 | D7 |
C_ | 7B | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | AD | F4 | F6 | F2 | F3 | F5 |
D_ | 7D | 4A | 4B | 4C | 4D | 4E | 4F | 50 | 51 | 52 | B9 | FB | FC | F9 | FA | FF |
E_ | 5C | F7 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 5A | B2 | D4 | D6 | D2 | D3 | D5 |
F_ | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | B3 | DB | DC | D9 | DA | 9F |
Several other code pages exist, which amount to code page 37 with a few characters swapped. In particular, code page 37 encodes the hard brackets ([]
) at BAhex and BBhex, while other variants use other encodings for the hard brackets. For example, code page 1047 is a variant used by the MVS Open Systems compiler. [18] It differs from code page 37 in six positions: Ý
and [
switch places, as do ¨
and ]
, placing the hard brackets at ADhex and BDhex; the caret and not sign also switch places [19] [20] This encoding of the brackets was inherited from the 3270 display system. [21] Although IBM intends code page 1047 to be used to fulfil specific requirements only, and not as a replacement for code pages 37 and 500, [3] the subset of code page 1047 encoding the ASCII repertoire was used for the single-byte graphical codes in UTF-EBCDIC. [18]
A hybrid of code pages 37 and 1047 used in combination with code page 310 on the 3279 system has been acknowledged by SHARE, but not officially designated as a code page by IBM, and is sometimes referred to as code page 37-2 by transcoding software. [21] It mostly matches code page 1047, except that the caret and the not sign are inverted to match code page 37. [21] [22]
Code page 500, known as "International EBCDIC", [5] "International Latin-1" or "International Number 5", [21] is the other major EBCDIC encoding for the ISO/IEC 8859-1 repertoire. It is used in Belgium, Switzerland and on AS/400 systems in Canada. [5] It is related to code page 37 and has the same repertoire, but differs in seven positions; in particular, it encodes [
and ]
at 4Ahex and 5Ahex respectively, which are used for the cent sign (¢
) and exclamation point (!
) in code page 37. The caret (^
) is also encoded at 5Fhex, similarly to code page 1047. The ¢
is encoded at B0hex, the ¬
at BAhex, the !
at 4Fhex and the pipe character (|
) at BBhex. [23] [24] Code page 500 is in turn related to the German code page 273, which swaps several character pairs in a manner corresponding to the differences between DRV8 and ISO/IEC 8859-1, resulting in placement of the hard brackets at 63hex and FChex. [25]
A variant of code page 37 with the euro sign (€
) character added at the 9Fhex position, replacing the universal currency sign (¤
) is code page 1140. [26] [27] Similarly, code page 1148 makes the same change to code page 500, [28] [29] and code page 1141 does so to code page 273. [30]
An EBCDIC code page with the ISO/IEC 8859-15 repertoire, including the euro sign, is code page 924; this is related to code page 1047 but with the ISO/IEC 8859-1 characters replaced with their ISO/IEC 8859-15 replacements, with ¢ and ¬ moved to their code page 500 locations at B0hex and BAhex respectively, and with Ý moved to 4Ahex. [31]
Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using digital computers. The numerical values that make up a character encoding are known as "code points" and collectively comprise a "code space", a "code page", or a "character map".
Extended Binary Coded Decimal Interchange Code is an eight-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems. It descended from the code used with punched cards and the corresponding six-bit binary-coded decimal code used with most of IBM's computer peripherals of the late 1950s and early 1960s. It is supported by various non-IBM platforms, such as Fujitsu-Siemens' BS2000/OSD, OS-IV, MSP, and MSP-EX, the SDS Sigma series, Unisys VS/9, Unisys MCP and ICL VME.
ISO/IEC 8859-1:1998, Information technology — 8-bit single-byte coded graphic character sets — Part 1: Latin alphabet No. 1, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1987. ISO/IEC 8859-1 encodes what it refers to as "Latin alphabet no. 1", consisting of 191 characters from the Latin script. This character-encoding scheme is used throughout the Americas, Western Europe, Oceania, and much of Africa. It is the basis for some popular 8-bit character sets and the first two blocks of characters in Unicode.
ISO/IEC 8859-3:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 3: Latin alphabet No. 3, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1988. It is informally referred to as Latin-3 or South European. It was designed to cover Turkish, Maltese and Esperanto, though the introduction of ISO/IEC 8859-9 superseded it for Turkish. The encoding was popular for users of Esperanto, but fell out of use as application support for Unicode became more common.
In computing, a code page is a character encoding and as such it is a specific association of a set of printable characters and control characters with unique numbers. Typically each number represents the binary value in a single byte.
Windows-1252 or CP-1252 is a single-byte character encoding of the Latin alphabet that was used by default in Microsoft Windows for English and many Romance and Germanic languages including Spanish, Portuguese, French, and German. This character-encoding scheme is used throughout the Americas, Western Europe, Oceania, and much of Africa. All modern operating systems, including Windows, now use Unicode code points and text encodings by default, which are portable across all of the world's major languages.
ISO/IEC 8859-11:2001, Information technology — 8-bit single-byte coded graphic character sets — Part 11: Latin/Thai alphabet, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 2001. It is informally referred to as Latin/Thai. It is nearly identical to the national Thai standard TIS-620 (1990). The sole difference is that ISO/IEC 8859-11 allocates non-breaking space to code 0xA0, while TIS-620 leaves it undefined.
ISO/IEC 8859-8, Information technology — 8-bit single-byte coded graphic character sets — Part 8: Latin/Hebrew alphabet, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings. ISO/IEC 8859-8:1999 from 1999 represents its second and current revision, preceded by the first edition ISO/IEC 8859-8:1988 in 1988. It is informally referred to as Latin/Hebrew. ISO/IEC 8859-8 covers all the Hebrew letters, but no Hebrew vowel signs. IBM assigned code page 916 to it. This character set was also adopted by Israeli Standard SI1311:2002, with some extensions.
ISO/IEC 8859-4:1998, Information technology — 8-bit single-byte coded graphic character sets — Part 4: Latin alphabet No. 4, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1988. It is informally referred to as Latin-4 or North European. It was designed to cover Estonian, Latvian, Lithuanian, Greenlandic, and Sámi. It has been largely superseded by ISO/IEC 8859-10 and Unicode. Microsoft has assigned code page 28594 a.k.a. Windows-28594 to ISO-8859-4 in Windows. IBM has assigned code page 914 to ISO 8859-4.
ISO/IEC 8859-7:2003, Information technology — 8-bit single-byte coded graphic character sets — Part 7: Latin/Greek alphabet, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1987. It is informally referred to as Latin/Greek. It was designed to cover the modern Greek language. The original 1987 version of the standard had the same character assignments as the Greek national standard ELOT 928, published in 1986. The table in this article shows the updated 2003 version which adds three characters. Microsoft has assigned code page 28597 a.k.a. Windows-28597 to ISO-8859-7 in Windows. IBM has assigned code page 813 to ISO 8859-7. (IBM CCSID 813 is the original encoding. CCSID 4909 adds the euro sign. CCSID 9005 further adds the drachma sign and ypogegrammeni.)
ISO/IEC 8859-9:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 9: Latin alphabet No. 5, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1989. It is designated ECMA-128 by Ecma International and TS 5881 as a Turkish standard. It is informally referred to as Latin-5 or Turkish. It was designed to cover the Turkish language, designed as being of more use than the ISO/IEC 8859-3 encoding. It is identical to ISO/IEC 8859-1 except for the replacement of six Icelandic characters with characters unique to the Turkish alphabet. And the uppercase of i is İ; the lowercase of I is ı.
Windows-1250 is a code page used under Microsoft Windows to represent texts in Central European and Eastern European languages that use the Latin script. It is primarily used by Czech, though Czech has now moved to UTF-8 and mostly abandoned this legacy encoding. It is also used for Polish, Slovak, Hungarian, Slovene, Serbo-Croatian, Romanian, Rotokas and Albanian. It may also be used with the German language, though it's missing uppercase ẞ. German-language texts encoded with Windows-1250 and Windows-1252 are identical.
Windows code page 1253, commonly known by its IANA-registered name Windows-1253 or abbreviated as cp1253, is a Microsoft Windows code page used to write modern Greek. It is not capable of supporting the older polytonic Greek.
Windows-1254 is a code page used under Microsoft Windows, to write Turkish that it was designed for. Characters with codepoints A0 through FF are compatible with ISO 8859-9, but the CR range, which is reserved for C1 control codes in ISO 8859, is instead used for additional characters. It is similar to ISO/IEC 8859-1 except for the replacement of six Icelandic characters with characters unique to the Turkish alphabet.
Windows-1257 is an 8-bit, single-byte extended ASCII code page used to support the Estonian, Latvian and Lithuanian languages under Microsoft Windows. In Lithuania, it is standardised as LST 1590-3, alongside a modified variant named LST 1590-4.
Code page 852 is a code page used under DOS to write Central European languages that use Latin script.
Several 8-bit character sets (encodings) were designed for binary representation of common Western European languages, which use the Latin alphabet, a few additional letters and ones with precomposed diacritics, some punctuation, and various symbols. These character sets also happen to support many other languages such as Malay, Swahili, and Classical Latin.
Windows code pages are sets of characters or code pages used in Microsoft Windows from the 1980s and 1990s. Windows code pages were gradually superseded when Unicode was implemented in Windows, although they are still supported both within Windows and other platforms, and still apply when Alt code shortcuts are used.
IBM code page 949 (IBM-949) is a character encoding which has been used by IBM to represent Korean language text on computers. It is a variable-width encoding which represents the characters from the Wansung code defined by the South Korean standard KS X 1001 in a format compatible with EUC-KR, but adds IBM extensions for additional hanja, additional precomposed Hangul syllables, and user-defined characters.
Code page 922 is a code page used under IBM AIX and DOS to write the Estonian language. It is an extension and modification of ISO/IEC 8859-1, where the letters Ð/ð and Þ/þ used for Icelandic are replaced by the letters Š/š and Ž/ž respectively. This matches the encoding of these letters in Windows-1257 and ISO/IEC 8859-13.
This code page is meant for limited use to meet specific requirements. It is not intended as a replacement for Code Page 00037 which is the required code page for the United States and several other countries or Code Page 00500
Prior to 1986, ISO-8 X'9F' (APC) mapped to EBCDIC X'E1'. This control code point is a graphic code point. It was previously used as numeric space character in many EBCDIC SBCS coded character sets, and with the latest revised CECPs, the numeric space character has been replaced with DIVISION SYMBOL.
CP 1070 is CP 0037 Version 0
The map preserves the invariance for a set of 82 graphic characters (including SPACE) (known as the IBM Syntactic Graphic Character set), and maintains consistency with the IBM MVS Open Systems Code page (CPGID 1047) for the variant characters from within the ASCII repertoire.