EBCDIC — the Extended Binary Coded Decimal Interchange Code — is IBM’s 8-bit character encoding for mainframe and midrange systems. It is completely unrelated to ASCII and assigns different byte values to every printable character. This converter translates between ASCII text and EBCDIC byte values using IBM Code Page 037, with output in hex, decimal, or binary.
How it works
The tool carries the full printable Code Page 037 mapping. Encoding looks up each character in the reverse table to find its EBCDIC byte value and formats that byte in your chosen base. Decoding parses each byte value you enter, validates it as 0–255, and maps it to its Code Page 037 character.
Characters outside Code Page 037 are handled explicitly — never silently dropped or invented. On encoding, unrepresentable characters are skipped and listed. On decoding, non-printable bytes are shown as replacement markers so you know exactly where they appear.
The non-contiguous letter layout
The single most surprising feature of EBCDIC is that its letters are split across three non-consecutive blocks:
| Block | Capital letters | EBCDIC byte range |
|---|---|---|
| Block 1 | A–I | 0xC1–0xC9 |
| Block 2 | J–R | 0xD1–0xD9 |
| Block 3 | S–Z | 0xE2–0xE9 |
The gap bytes (0xCA–0xD0, 0xDA–0xE1) are unassigned or assigned to other characters, not to letters. This layout reflects EBCDIC’s origin in the IBM 026 keypunch card column layout, where physical card columns were arranged differently from a linear alphabet.
The practical consequence: a naïve byte-value sort of EBCDIC text does not produce alphabetical order. Any sort algorithm ported from ASCII to an EBCDIC system must use a proper collation sequence, not raw byte comparison — a well-known trap in mainframe data migration.
Code Page 037 — what it covers
Code Page 037 is the US and Canada variant of EBCDIC. It includes the standard Latin alphabet (upper and lower case), digits 0–9, common punctuation, and several special characters. Its currency symbol is the dollar sign. Other national EBCDIC code pages differ mainly in the placement of currency symbols, a few punctuation characters, and some special symbols. If you are working with data from a European IBM installation, Code Page 273 (German), 285 (UK), or 297 (French) may be needed instead.
Worked example
The ASCII text Hello, World! encodes in Code Page 037 to:
H e l l o , ' ' W o r l d !
C8 85 93 93 96 6B 40 E6 96 99 93 84 5A
Key values to recognise: space is always 40, digits 0–9 map to F0–F9, and upper-case letters are scattered across the C, D, and E ranges.
To decode, enter those hex bytes separated by spaces and the tool returns the original text. Everything runs locally in your browser — no text or byte data is uploaded.
When EBCDIC conversion is needed
- Mainframe file exports: IBM z/OS and IBM i (AS/400) file transfers often arrive as raw EBCDIC bytes. Converting to ASCII is the first step before processing.
- Data migration: Moving records from a mainframe database to a modern system requires character-by-character conversion, not just encoding header changes.
- Debugging mainframe logs: Log files from z/OS Syslog, JES2 spool output, and DB2 EXPLAIN output use EBCDIC; converting lets you read them in a standard text editor.
- Legacy COBOL interfaces: Some modern systems must format data as EBCDIC to interoperate with legacy COBOL applications still running on IBM hardware.