Warum diese ANSI-Art auf dem Linux-Terminal nicht richtig gerendert wird

Warum diese ANSI-Art auf dem Linux-Terminal nicht richtig gerendert wird

Ich versuche herauszufinden, warum meine Bibliothek diese ANSI-Grafik nicht richtig darstellt:

ANSI-Kunst einer fleischfressenden Blume

Ich dachte, das Problem liege bei meiner ANSI-Escape-Verarbeitung, aber im realen Terminal scheint es dasselbe zu sein (getestet im XFce-Terminal).

Terminal mit ANSI-Art

Ich habe keine Ahnung, wie ich das debuggen soll, die Datei ist in CP437-Kodierung und kann gefunden werden unter16colo.rs-Website. Ich habe es in UTF8 konvertiert (auch Meta-Tags, die die Anzahl der Zeichen pro Zeile anzeigen, wurden entfernt) und die Datei ist hier zu finden:https://jcubic.pl/text.ansdas Terminal muss 80 Spalten haben, sonst erfolgt keine korrekte Anzeige.

Ich bin zufrieden mit der Antwort, warum es kaputt ist, aber es wäre auch schön zu wissen, wie man es repariert und richtig anzeigt.

Antwort1

Das Darstellungsproblem wird durch Nullbytes verursacht, die von ANSI-Editoren (und vermutlich auch unter DOS, obwohl ich das nicht überprüft habe) als Leerzeichen angezeigt werden.

So beheben Sie das Problem:

tr '\0' ' ' < 67_Calendar_2020_06_June.ans | iconv -f CP437 -t UTF8

verwandte Informationen