Anleitung
EBCDIC unter macOS: öffnen, bearbeiten und umwandeln
Eine Datei kam vom Mainframe, und jeder Editor auf Ihrem Mac zeigt Zeichensalat. Hier steht, warum, welche der zweiundsechzig EBCDIC-Codepages Sie wahrscheinlich brauchen, und wie Sie die Datei lesen, ändern und zurückschreiben.
Was EBCDIC ist, und warum die Datei wie Müll aussieht
EBCDIC ist die Zeichenkodierung von IBM und auf z/OS und seinen Vorgängern bis heute im
täglichen Einsatz. Es ist nicht ASCII und auch keine Obermenge davon: Die Buchstaben liegen nicht
zusammenhängend, die Ziffern stehen bei F0–F9, und ein Leerzeichen ist
0x40 statt 0x20. Öffnen Sie eine EBCDIC-Datei in einem Editor, der
UTF-8 annimmt, sehen Sie einen Bildschirm voller Satzzeichen mit Akzenten, weil jedes Byte als
das falsche Zeichen gelesen wird.
Das eine EBCDIC gibt es nicht. Es gibt Dutzende nationale Codepages, die sich bei den Buchstaben einig sind und bei fast allem anderen nicht — welches Byte ein Dollarzeichen ist, eine Raute, eine eckige Klammer, ein Umlaut. Eine deutsche Datei als amerikanische Codepage gelesen ergibt Text, der fast stimmt, mit einer Handvoll still falscher Zeichen — schlimmer als offensichtlich kaputt.
Die zweiundsechzig Codepages, die Volt liest und schreibt
Westeuropa und Amerika
- 037 — USA, Kanada
- 273 — Deutschland, Österreich
- 274 — Belgien
- 275 — Brasilien
- 277 — Dänemark, Norwegen
- 278 — Finnland, Schweden
- 280 — Italien
- 282 — Portugal
- 284 — Spanien, Lateinamerika
- 285 — Vereinigtes Königreich
- 297 — Frankreich
- 500 — International
- 871 — Island
- 924 — Latin 9
- 1047 — Latin 1, Open Systems
Die Euro-Fassungen
- 1140 — USA, Kanada, Euro
- 1141 — Deutschland, Österreich, Euro
- 1142 — Dänemark, Norwegen, Euro
- 1143 — Finnland, Schweden, Euro
- 1144 — Italien, Euro
- 1145 — Spanien, Lateinamerika, Euro
- 1146 — Vereinigtes Königreich, Euro
- 1147 — Frankreich, Euro
- 1148 — International, Euro
- 1149 — Island, Euro
- 1153 — Mitteleuropäisch, Euro
- 1154 — Kyrillisch mehrsprachig, Euro
- 1155 — Türkei, Euro
- 1156 — Baltisch mehrsprachig, Euro
- 1157 — Estland, Euro
- 1158 — Ukraine, Euro
- 1160 — Thailand, Euro
- 1164 — Vietnam, Euro
Mitteleuropa
- 870 — Mitteleuropäisch
- 1112 — Baltisch mehrsprachig
- 1122 — Estland
Kyrillisch
- 880 — Kyrillisch
- 1025 — Kyrillisch mehrsprachig
- 1123 — Ukraine
- 1166 — Kasachstan
Griechisch
- 423 — Griechenland, abgelöst
- 875 — Griechenland
Türkisch
- 905 — Türkei, Latin 3
- 1026 — Türkei, Latin 5
- 1175 — Türkei, Euro und Lira
Naher Osten
- 420 — Arabisch
- 424 — Hebräisch
- 425 — Arabisch, Latein
- 803 — Hebräisch, Zeichensatz A
- 918 — Urdu
- 1097 — Farsi
Asien
- 281 — Japan, Latein
- 290 — Japan, Katakana
- 1027 — Japan, Latein erweitert
- 838 — Thailand
- 1130 — Vietnam
- 1132 — Laos
- 1137 — Devanagari
Japanisch — Ein- und Doppelbyte
- 930 — Japanisch, Katakana-Kanji
- 939 — Japanisch, Latein-Kanji
- 1390 — Japanisch, Katakana-Kanji, JIS X 0213
- 1399 — Japanisch, Latein-Kanji, JIS X 0213
Jede wird gelesen und geschrieben — eine Datei lässt sich also öffnen, ändern und in der Codepage zurücksichern, in der sie kam, oder beim Hinausgehen in UTF-8 umwandeln, wenn das nächste System das will.
Welche Codepage er wählt, und warum er es sagt
Volt wählt durch Lesen: Er probiert die Kandidaten und behält den, dessen Ergebnis am meisten nach Sprache aussieht, statt die amerikanische Codepage anzunehmen, weil sie die häufigste ist. Die Statusleiste sagt dann, welche er gewählt hat und warum — eine Annahme, die man nicht sieht, kann man nicht korrigieren.
Zwei Codepages werden bewusst nie geraten. Griechisch (875) und Kyrillisch (880) erzeugen Bytefolgen, die von gewöhnlichen lateinischen Wörtern nicht zu unterscheiden sind — keine Bewertung kann sie ehrlich auseinanderhalten. Sie wählen die Codepage im Menü, und die Datei liest sich einwandfrei: eine gestellte Frage ist besser als eine erfundene Antwort.
Wählen Sie danach eine andere Codepage, stellt Volt die entscheidende Frage: diese Bytes in jener Codepage neu lesen, oder den Text in sie umwandeln? Das sind gegensätzliche Vorgänge, und die meisten Editoren fragen nicht.
Die Zeilenende-Falle
Eine EBCDIC-Datei enthält meist überhaupt kein 0x0A. Ihr Zeilenende ist NEL,
das Byte 0x15 — ein echtes Zeilenende in jedem Sinne von Unicode, und eines, von dem
die meisten Editoren nie gehört haben. Deshalb erscheint ein Mainframe-Export so oft als eine
einzige Zeile von mehreren Megabyte.
Volt liest neun Arten von Zeilenenden, NEL darunter, entscheidet anhand der umgewandelten Bytes statt der rohen, welches eine Datei verwendet, und schreibt zurück, was er vorgefunden hat.
Und die Dateien ganz ohne Zeilenenden
Viele Mainframe-Daten haben überhaupt keinen Abschluss: IBM-RDW-Sätze variabler Länge mit einem Vier-Byte-Deskriptor oder Sätze fester Breite mit 80 und 132 Spalten, bei denen die Länge die ganze Vereinbarung ist. Volt macht daraus beim Öffnen Zeilen und setzt das Auffüllen beim Sichern zurück. Mehr zu Mainframe-Dateien auf dem Mac.
So öffnen Sie eine
- Die Datei öffnen. Ist sie erkennbar EBCDIC, wird sie als EBCDIC gelesen, und die Statusleiste nennt die Codepage.
- Stimmt die Codepage nicht — oder ist es Griechisch oder Kyrillisch, die nie geraten werden —, wählen Sie die richtige im Zeichensatz-Menü und lassen die Bytes neu lesen.
- Wie gewöhnlichen Text bearbeiten.
- In derselben Codepage zurücksichern, oder beim Hinausgehen in UTF-8 umwandeln.
- Wer sehen will, was wirklich dasteht: Der Hex-Editor zeigt Offsets, Bytes und die druckbare Spalte nebeneinander.
Fragen
Wie öffne ich eine EBCDIC-Datei auf dem Mac?
In einem Editor, der die Kodierung kennt. Volt liest zweiundsechzig EBCDIC-Codepages, wählt die, deren Ergebnis am meisten nach Sprache aussieht, und nennt sie in der Statusleiste. Ist die Annahme falsch, oder ist die Datei griechisches oder kyrillisches EBCDIC, wählen Sie die Codepage im Zeichensatz-Menü und lassen die Bytes neu lesen.
Warum öffnet meine EBCDIC-Datei als eine riesige Zeile?
Weil ihr Zeilenende NEL ist, das Byte 0x15, nicht der Zeilenvorschub 0x0A, nach dem die meisten Editoren suchen. Die Datei enthält gar kein 0x0A, also sieht ein Editor, der nur LF und CRLF kennt, eine einzige Zeile von mehreren Megabyte. Volt liest NEL als das Zeilenende, das es ist.
Kann ich EBCDIC in UTF-8 umwandeln?
Ja. Öffnen Sie die Datei in ihrer Codepage und sichern Sie sie als UTF-8; Zeichensatz und Zeilenenden werden im selben Durchgang umgewandelt. Umgekehrt geht es auch — eine auf dem Mac bearbeitete Datei lässt sich in der EBCDIC-Codepage zurückschreiben, aus der sie kam.
Welche EBCDIC-Codepages werden unterstützt?
62: 58 nationale Einbyte-Codepages, oben nach Region gruppiert, und 4 japanische Codepages, die Ein- und Doppelbyte-Zeichen mischen. Alle werden gelesen und geschrieben.
Warum erkennt Volt griechisches, kyrillisches, arabisches oder hebräisches EBCDIC nicht selbst?
Weil diese Codepages ihre Buchstaben dorthin legen, wo das ASCII-Alphabet liegt — ihre Bytes sind von gewöhnlichen lateinischen Wörtern nicht zu unterscheiden, und jede automatische Wahl wäre ein als Tatsache verkaufter Münzwurf. Volt fragt stattdessen und liest die Datei einwandfrei, sobald Sie die Codepage genannt haben.
Probieren Sie es mit Ihrer eigenen Datei
Volt ist in der kostenlosen Beta. Laden Sie ihn jetzt — ohne Konto, ohne Anmeldung — und probieren Sie ihn an der Datei aus, um die es geht. Jeder Build läuft sieben Tage, und jedes Update gibt weitere sieben.
macOS 13 oder neuer, Apple Silicon. Etwa 8 MB, signiert und notarisiert. Alle Funktionen · was sich in diesem Build geändert hat.
Verwandte Anleitungen
- Mainframe-Dateien auf dem Mac — RDW-Sätze, feste Breite, Copybooks.
- Eine Datei in UTF-8 umwandeln — der Weg aus jeder Codepage.
- Der Hex-Editor — die Bytes selbst.
- Jede Datei, die Volt öffnet — alle 220 Zeichensätze.