Welche Art der Codierung verwenden diese ANSI-Grafiken?

12

Ich habe diese Website gefunden . es hat Zip - Dateien (Links auf der Hauptseite ) mit allen Kunstwerken. Einige von ihnen haben eine .ansErweiterung und sie sehen aus wie unter Linux / Unix verwendete ANSI-Escape-Codes, aber wenn ich einen von ihnen mit catdem XFce-Terminal öffne, entsteht Müll (aber in Farbe). Sie sehen nicht aus wie die Bildergalerie.

Die erste Zeile des Hauptkunstwerks aus dem Link sieht folgendermaßen aus (kopiert von Emacs):

[0;1m[30mthere is no substitute [0;33mÜܲ[1;43m°±²²[40mÛ[43mÛ²±[0;33mÝ ßÜ[1;43m²²²[40mÛÛ²[40m[K

Der Dateityp ist DOS, sie können jedoch nur unter Windows erstellt werden.

Bei der Suche nach ANSI-Grafiken habe ich auch diese Website gefunden , die Zip-Dateien enthält, die nur Dateien mit einer .ansErweiterung enthalten und unter Linux auch nicht ordnungsgemäß gerendert werden (Galerie auf Seite 2).

Meine Fragen sind:

  • Um welche Art von Codierung handelt es sich bei welchem ​​Computer?
  • Benötige ich einen speziellen Viewer, um es auf dem Linux-Terminal zu sehen?
  • Wissen Sie, ob diese Art von Grafik für Linux / Unix-Terminals erstellt wurde? Ich habe nur ASCII-Kunst gefunden.
  • Kann ich es konvertieren, um es auf Linux-Terminals anzuzeigen?
jcubic
quelle
1
Der Datenteil ist nicht UTF-8: Wenn Sie wissen, welche Codierung er verwendet, können Sie ihn verwenden recodeoder iconvübersetzen. Oder (in Kenntnis der Kodierung) Sie können luitsie mithilfe catder Anzeige übersetzen. Die Codierung zu kennen, ist wahrscheinlich etwas für das Superuser- Forum, das hier nicht aktuell ist.
Thomas Dickey

Antworten:

30

Dies sind ANSI-Escape-Codes, aber Sie haben drei Probleme:

  • die Zeichenkodierung, wie Sie vermuten - die meisten dieser Dateien befinden sich in CP437, Sie müssen sie also konvertieren:

    iconv -f CP437
    

    (Verwenden Sie diese -tOption, wenn Sie die Zielcodierung angeben müssen. Standardmäßig entspricht iconvsie der Zeichencodierung des aktuellen Gebietsschemas.)

  • das Farbschema - Diese Dateien setzen normalerweise ein ähnliches Farbschema wie das auf PCs verwendete CGA / EGA / VGA-Farbschema voraus. Mit Terminalemulatoren können Sie im Allgemeinen ein Farbschema auswählen (oder Farben manuell neu definieren). GNOME Terminal verfügt beispielsweise über ein integriertes „Linux-Konsolen“ -Schema, das für ANSI-Kunst gut geeignet ist.

  • die Bildschirmgröße - die meisten ANSI-Grafiken nehmen eine Bildschirmbreite von 80 Spalten an und gehen davon aus, dass sie dort herumlaufen.

Sobald Sie das alles behoben haben, benötigen Sie keinen speziellen Viewer. Hier ist ein Screenshot, der die Ausgabe von aa-neurodancer.ansGNOME Terminal nach der Konvertierung der Zeichenkodierung zeigt:

ANSI-Kunst, die einen menschlichen Kopf mit Schauspielen zeigt

Der untere Teil des Screenshots zeigt den SAUCE-Datensatz der Datei :

  • SAUCE Version 00
  • Titel: "Neurodancer"
  • Autor: “Antsy Atheist”
  • Datum: 13. August 2018
  • Dateigröße: 0x1A65, 6757 Bytes
  • Datentyp: Zeichen
  • Dateityp: ANSi
  • Breite: 80
  • Höhe: 23
  • Schriftart: IBM VGA

( Ansilove kann SAUCE-Datensätze für Sie dekodieren.)

Stephen Kitt
quelle
Es wurde gerade festgestellt, dass die letzten 128 Bytes der ANSI-Datei Metadaten wie die Anzahl der Zeichen pro Zeile enthalten können. Einzelheiten finden Sie in der SAUSE-Spezifikation .
jcubic
Ah schön, das erklärt den unteren Teil des Screenshots!
Stephen Kitt