converteren | encoderen | mainframe

> ebcdic | ibm | legacy <

// EBCDIC - Extended Binary Coded Decimal Interchange Code

0 tekens
0 tekens
[MAINFRAME]

IBM mainframe

Standaard tekenencodering voor IBM-mainframesystemen.

[CODE PAGES]

Meerdere varianten

Ondersteuning voor verschillende EBCDIC-codepagina’s en landinstellingen.

[LEGACY]

Legacy-ondersteuning

Essentieel voor het werken met legacy mainframegegevens.

>> technische info

Hoe EBCDIC werkt:

EBCDIC (Extended Binary Coded Decimal Interchange Code) is een 8‑bits tekenencodering ontwikkeld door IBM. In tegenstelling tot ASCII, dat gerelateerde tekens groepeert, verspreidt EBCDIC tekens over de hele code-ruimte vanwege de oorsprong in ponskaarten. Verschillende EBCDIC-codepagina’s ondersteunen diverse talen en regio’s; EBCDIC 037 is het meest gebruikelijk voor de VS en Canada.

Voorbeelden: EBCDIC vs ASCII:

Tekenmapping (EBCDIC 037):

Teken | ASCII | EBCDIC
------|-------|--------
Spatie| 0x20  | 0x40
  A   | 0x41  | 0xC1
  B   | 0x42  | 0xC2
  0   | 0x30  | 0xF0
  1   | 0x31  | 0xF1
  a   | 0x61  | 0x81
  b   | 0x62  | 0x82

"ABC" in ASCII: 41 42 43
"ABC" in EBCDIC: C1 C2 C3

"123" in ASCII: 31 32 33
"123" in EBCDIC: F1 F2 F3

Waarom EBCDIC gebruiken:

  • ▸Vereist in IBM-mainframeomgevingen
  • ▸Compatibiliteit met legacy‑systemen
  • ▸Datamigratieprojecten
  • ▸COBOL- en mainframeontwikkeling
  • ▸Bewaring van historische gegevens

>> veelgestelde vragen

Wat is EBCDIC?

EBCDIC (Extended Binary Coded Decimal Interchange Code) is een 8‑bits tekenencodering die IBM in 1963 heeft ontwikkeld. Het wordt vooral gebruikt op IBM-mainframe- en midrangecomputersystemen. In tegenstelling tot ASCII weerspiegelt de tekenindeling van EBCDIC de erfenis van ponskaarten.

Waarom is EBCDIC anders dan ASCII?

EBCDIC is ontstaan uit ponskaartcodes, waarbij gaten op specifieke posities tekens vertegenwoordigden. Dit leidde tot een niet‑aaneengesloten indeling: letters zijn niet sequentieel en er zitten hiaten tussen lettergroepen. ASCII daarentegen is vanaf nul ontworpen met het oog op efficiëntie, waardoor het logischer is voor moderne computersystemen.

Wat zijn EBCDIC-codepagina’s?

EBCDIC heeft meerdere varianten, zogenaamde codepagina’s, voor verschillende talen en regio’s. Veelgebruikte voorbeelden zijn: EBCDIC 037 (VS/Canada), EBCDIC 500 (internationaal), EBCDIC 875 (Grieks) en EBCDIC 1047 (Open Systems). Elke codepagina gebruikt een andere tekenmapping om aan lokale eisen te voldoen.

Waar wordt EBCDIC tegenwoordig nog gebruikt?

EBCDIC wordt nog steeds veel gebruikt in IBM-mainframeomgevingen (z/OS, z/VM, z/VSE), in bank- en financiële systemen, in overheids‑legacy‑systemen en in COBOL‑applicaties. Veel organisaties behouden EBCDIC-systemen voor bedrijfskritische processen die al tientallen jaren betrouwbaar draaien.

// Tekenmapping ASCII ↔ EBCDIC (CP037)

TekenASCIIEBCDIC (CP037)
A41C1
I49C9
J4AD1
R52D9
S53E2
Z5AE9
a6181
z7AA9
030F0
939F9
␠2040
.2E4B
!215A
\n0A25

// EBCDIC in code en op de opdrachtregel

Linux        iconv -f IBM037 -t UTF-8 input.dat > output.txt
             iconv -f UTF-8 -t IBM037 input.txt > output.dat
dd           dd conv=ascii  < ebcdic.dat > ascii.txt
             dd conv=ebcdic < ascii.txt  > ebcdic.dat
Python       data.decode('cp037')   /   text.encode('cp037')
Java         new String(bytes, "Cp037")

>> Meer vragen

V: Waarom vormen de letters A–Z in EBCDIC geen aaneengesloten blok?

A: EBCDIC stamt van de zones van ponskaarten: A–I op C1–C9, J–R op D1–D9, S–Z op E2–E9, met gaten ertussen. Daarom reken je niet simpelweg om met een optelling.

V: Welke codepagina moet ik kiezen?

A: Gangbaar zijn CP037 (VS/Canada), CP500 (internationaal) en CP1047 (z/OS Unix). Ze verschillen vooral bij leestekens als [ ] ^ ! |. Kies de codepagina waarmee de data is gemaakt.

V: Wat gebeurt er met regeleinden bij conversie?

A: Mainframebestanden hebben vaak records van vaste lengte zonder regeleinde; regeleindetekens (LF/NEL) staan per codepagina op een andere plek (bijv. LF = 25 in CP037). Controleer ze na conversie.

Andere talen