Choosing an EBCDIC code page
EBCDIC is a family of code pages, not one universal character table. Letters and digits are largely invariant, while brackets, currency symbols, punctuation, and national characters vary. IBM describes CCSID 37 as US/Canada, CCSID 500 as International, CCSID 1047 as Latin-1/Open Systems, and CCSID 1140 as the US/Canada euro update. A dataset catalog, transfer profile, job documentation, or producing application is better evidence than a visual score.
This implementation uses the Unicode Consortium’s published CP037 and CP500 mappings plus ICU’s IBM-derived CP1047 and CP1140 mappings. IBM also documents the variant code-point differences.
Why binary upload matters
A text editor, FTP client, terminal, or browser paste can translate bytes before inspection. Opening the original in binary mode preserves byte values such as C1 for “A” and 40 for EBCDIC space. Hex paste is useful for a known byte fragment, but this tool rejects offsets and annotations rather than risking their interpretation as data.
The hex table renders a bounded window for responsiveness while the complete file remains available to statistics, record analysis, and conversion. Visible dots do not mean the bytes are invalid; many EBCDIC control assignments are legitimate in their original environment.
Fixed records, blocked records, and binary fields
Mainframe extracts are often described by record format and logical record length. A file may contain fixed records concatenated without line separators, variable records prefixed by record descriptor words, or blocked records with additional headers. File-size factors and repeated padding can suggest widths, but several wrong widths can look plausible. Confirm the RECFM/LRECL and copybook.
Even inside a text-oriented record, numeric fields may be packed decimal, zoned decimal, binary, or floating point. Decoding every byte through a character table only provides a forensic view; it does not parse those representations.
Conversion safety boundary
Never overwrite the only source file. Preserve the original bytes, record the selected CCSID and record format, compare control totals, and validate field-level output with the source owner. A byte-exact unchanged round trip verifies the implemented mapping path, not semantic correctness. Edited text may change record length and invalidate downstream offsets even when every character is representable.
Frequently asked questions
Why do CP037 and CP1140 usually look identical?
CP1140 is the euro update of CP037. In these mappings, byte 9F decodes as the generic currency sign in CP037 and the euro sign in CP1140; the other byte mappings match.
Why can all four candidates receive similar scores?
Most letters, digits, spaces, and many controls are shared. The variants become distinguishable only when the file contains affected punctuation or national characters. Treat the score as a reading aid, not an identification result.
Does UTF-8 export preserve fixed byte positions?
No. UTF-8 uses one to four bytes per Unicode character. The text may look identical while byte offsets and record lengths change. Preserve logical records separately when the destination requires structure.
Will EBCDIC export replace unsupported characters?
No. It stops at the first unrepresentable Unicode character and reports its code point and position. Silent substitution would hide data loss.
Browse legacy data tools · Fixed-width to CSV parser · All ToolQuill tools