Какой тип кодирования используют эти произведения искусства ANSI?

12

Я нашел этот сайт ; в нем есть zip-файлы (ссылки на главной странице ) со всеми произведениями искусства. Некоторые из них имеют .ansрасширение и выглядят как escape-коды ANSI, используемые в Linux / Unix, но когда я открываю один из них с catпомощью терминала XFce, он производит мусор (но в цвете). Они не похожи на галерею изображений.

Первая строка основной иллюстрации по ссылке выглядит следующим образом (скопировано из Emacs):

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

Тип файла - DOS, но они могут быть просто созданы в Windows.

Когда я искал искусство ANSI, я также обнаружил этот веб-сайт, на котором есть zip-файлы, содержащие только файлы с .ansрасширением, и они также неправильно отображаются в Linux (галерея на стр. 2).

Мои вопросы:

  • что это за кодировка, для какого компьютера?
  • мне нужен специальный просмотрщик, чтобы увидеть его на терминале Linux?
  • Вы знаете, был ли этот тип художественного произведения создан для терминалов Linux / Unix? Я только нашел искусство ASCII.
  • Можно ли конвертировать его для просмотра на терминалах Linux?
jcubic
источник
1
Часть данных не является UTF-8: если вы знали, какую кодировку она использует, вы можете использовать recodeили iconvперевести ее. Или (зная кодировку), вы можете использовать его luitдля перевода, используя catдля отображения. Знание кодировки, вероятно, что-то для суперпользователя форума, здесь не актуально.
Томас Дики

Ответы:

30

Это управляющие коды ANSI, но вы сталкиваетесь с тремя проблемами:

  • как вы подозреваете, кодировка символов - большинство этих файлов находятся в CP437, поэтому вам необходимо преобразовать их:

    iconv -f CP437
    

    (используйте -tопцию, если вам нужно указать целевую кодировку; по умолчанию iconvбудет соответствовать кодировка символов текущей локали);

  • цветовая схема - эти файлы обычно предполагают нечто похожее на цветовую схему CGA / EGA / VGA, используемую на ПК; эмуляторы терминала обычно позволяют вам выбрать цветовую схему (или переопределить цвета вручную), например, в GNOME Terminal есть встроенная схема «консоли Linux», которая хорошо работает для искусства ANSI;

  • размер экрана - большинство рисунков ANSI предполагает ширину экрана в 80 столбцов и предполагает их обтекание.

Как только вы исправите все это, вам не нужен специальный просмотрщик; Вот снимок экрана, показывающий вывод aa-neurodancer.ansв GNOME Terminal после преобразования кодировки символов:

Искусство ANSI, показывающее человеческую голову в очках

Внизу скриншота показана запись SAUCE файла :

  • СОУС версия 00
  • Название: «Нейродансер»
  • автор: «Antsy Atheist»
  • дата: 13 августа 2018 г.
  • размер файла: 0x1A65, 6757 байт
  • тип данных: символ
  • тип файла: ANSi
  • ширина: 80
  • высота: 23
  • шрифт: IBM VGA

( Ansilove может декодировать записи соуса для вас.)

Стивен Китт
источник
Просто обнаружил, что последние 128 байтов файла ANSI могут содержать метаданные, например количество символов в строке. См. SAUSE спецификацию для деталей.
jcubic
Ах, хорошо, это объясняет нижнюю часть скриншота!
Стивен Китт