Que tipo de codificação essas obras de arte ANSI usam?

12

Eu encontrei este site ; possui arquivos zip (links na página principal ) com todas as obras de arte. Alguns deles têm uma .ansextensão e parecem códigos de escape ANSI usados ​​no Linux / Unix, mas quando abro um deles usando cato terminal XFce, ele produz lixo (mas em cores). Eles não se parecem com a galeria de imagens.

A primeira linha da arte principal do link fica assim (copiada do Emacs):

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

O tipo de arquivo é DOS, mas eles podem ser criados apenas no Windows.

Ao pesquisar arte ANSI, também encontrei este site que possui arquivos zip contendo apenas arquivos com uma .ansextensão e também não são renderizados corretamente no Linux (galeria na página 2).

Minhas perguntas são:

  • que tipo de codificação é essa para qual computador?
  • preciso de um visualizador especial para vê-lo no terminal Linux?
  • você sabe se esse tipo de arte foi criado para terminais Linux / Unix? Eu só encontrei arte ASCII.
  • é possível convertê-lo para ser visualizado nos terminais Linux?
jcubic
fonte
1
A parte dos dados não é UTF-8: se você soubesse qual codificação ela usava, poderia usar recodeou iconvtraduzi-la. Ou (conhecendo a codificação), você pode usar luitpara traduzi-la, usando catpara a exibição. Conhecer a codificação é provavelmente algo para o fórum de superusuário , não tópico aqui.
21418 Thomas Dickey #

Respostas:

30

Estes são códigos de escape ANSI, mas você está tendo três problemas:

  • a codificação de caracteres, como você suspeita - a maioria desses arquivos está no CP437, então você precisa convertê-los:

    iconv -f CP437
    

    (use a -topção se precisar especificar a codificação de destino; por padrão iconv, corresponderá à codificação de caracteres da localidade atual);

  • o esquema de cores - esses arquivos normalmente assumem algo semelhante ao esquema de cores CGA / EGA / VGA usado nos PCs; os emuladores de terminal geralmente permitem escolher um esquema de cores (ou redefinir cores manualmente), por exemplo, o GNOME Terminal possui um esquema interno de “console Linux” que funciona bem para a arte ANSI;

  • o tamanho da tela - a maioria das obras de arte ANSI assume uma largura de tela de 80 colunas e espera agrupar por aí.

Depois de corrigir tudo isso, você não precisa de um visualizador especial; Aqui está uma captura de tela mostrando a saída do aa-neurodancer.ansGNOME Terminal, depois de converter a codificação de caracteres:

Arte ANSI mostrando uma cabeça humana com óculos

A parte inferior da captura de tela mostra o registro SAUCE do arquivo :

  • MOLHO versão 00
  • título: "Neurodancer"
  • autor: “Antsy Ateist”
  • data: 13 de agosto de 2018
  • tamanho do arquivo: 0x1A65, 6757 bytes
  • tipo de dados: caractere
  • tipo de arquivo: ANSi
  • largura: 80
  • altura: 23
  • fonte: IBM VGA

(O Ansilove pode decodificar registros SAUCE para você.)

Stephen Kitt
fonte
Acabei de descobrir que os últimos 128 bytes do arquivo ANSI podem conter metadados como o número de caracteres por linha. Consulte a especificação SAUSE para obter detalhes.
jcubic
Ah, legal, isso explica a parte inferior da captura de tela!
Stephen Kitt