Quel type de codage ces illustrations ANSI utilisent-elles?

12

J'ai trouvé ce site Web ; il a des fichiers zip (liens sur la page principale ) avec toutes les œuvres d'art. Certains d'entre eux ont une .ansextension et ils ressemblent aux codes d'échappement ANSI utilisés sur Linux / Unix, mais lorsque j'ouvre l'un d'eux à l'aide catdu terminal XFce, cela produit des ordures (mais en couleur). Ils ne ressemblent pas à la galerie d'images.

La première ligne de l'illustration principale du lien ressemble à ceci (copiée depuis Emacs):

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

Le type de fichier est DOS, mais ils peuvent être simplement créés sous Windows.

Lors de la recherche d'art ANSI, j'ai également trouvé ce site Web qui contient des fichiers zip contenant uniquement des fichiers avec une .ansextension et qui ne s'affichent pas correctement sur Linux (galerie à la page 2).

Mes questions sont:

  • de quel type d'encodage s'agit-il, pour quel ordinateur?
  • ai-je besoin d'un visualiseur spécial pour le voir sur un terminal Linux?
  • savez-vous si ce type d'illustration a été créé pour les terminaux Linux / Unix? Je n'ai trouvé que de l'art ASCII.
  • est-il possible de le convertir pour l'afficher sur des terminaux Linux?
jcubic
la source
1
La partie données n'est pas UTF-8: si vous saviez quel encodage elle utilisait, vous pouviez l'utiliser recodeou la iconvtraduire. Ou (connaissant l'encodage), vous pouvez utiliser luitpour le traduire, à l'aide catde l'affichage. Connaître l'encodage est probablement quelque chose pour le forum des super-utilisateurs , pas d'actualité ici.
Thomas Dickey

Réponses:

30

Ce sont des codes d'échappement ANSI, mais vous rencontrez trois problèmes:

  • l'encodage des caractères, comme vous le suspectez - la plupart de ces fichiers sont au CP437, vous devez donc les convertir:

    iconv -f CP437
    

    (utilisez l' -toption si vous devez spécifier l'encodage cible; par défaut, iconvil correspondra à l'encodage des caractères des paramètres régionaux actuels);

  • le jeu de couleurs - ces fichiers supposent généralement quelque chose de similaire au jeu de couleurs CGA / EGA / VGA utilisé sur les PC; les émulateurs de terminal vous permettent généralement de choisir un schéma de couleurs (ou de redéfinir les couleurs manuellement), par exemple GNOME Terminal a un schéma intégré de «console Linux» qui fonctionne bien pour l'art ANSI;

  • la taille de l'écran - la plupart des illustrations ANSI supposent une largeur d'écran de 80 colonnes et s'attendent à s'enrouler là-bas.

Une fois que vous avez réglé tout cela, vous n'avez pas besoin d'un visualiseur spécial; voici une capture d'écran montrant la sortie de aa-neurodancer.ansdans GNOME Terminal, après avoir converti l'encodage des caractères:

Art ANSI montrant une tête humaine avec des lunettes

Le bas de la capture d'écran montre l'enregistrement SAUCE du fichier :

  • SAUCE version 00
  • titre: «Neurodancer»
  • auteur: «Antsy Atheist»
  • date: 13 août 2018
  • taille du fichier: 0x1A65, 6757 octets
  • type de données: caractère
  • type de fichier: ANSi
  • largeur: 80
  • hauteur: 23
  • police: IBM VGA

( Ansilove peut décoder les enregistrements SAUCE pour vous.)

Stephen Kitt
la source
Je viens de découvrir que les 128 derniers octets du fichier ANSI peuvent contenir des métadonnées comme le nombre de caractères par ligne. Voir la spécification SAUSE pour plus de détails.
jcubic
Ah sympa, ça explique le bas de la capture d'écran!
Stephen Kitt