为什么这个 ANSI Art 无法在 Linux 终端上正确渲染

jcu*_*bic 3 terminal character-encoding ansi

我正在尝试调查为什么我的图书馆无法正确渲染此 ANSI 艺术作品:

ANSI 食肉花艺术

我虽然问题出在我的 ANSI 转义处理中,但似乎在真实终端中是相同的(在 XFce 终端中测试)。

带有 ANSI 艺术的终端

我不知道如何调试它,该文件采用 CP437 编码,可以在16colo.rs 网站找到。我已将其转换为 UTF8(也删除了显示每行字符数的元标记)并且可以在此处找到该文件: https: //jcubic.pl/text.ans终端需要有 80 列,否则它不会正确显示。

我很乐意回答它为什么坏了,但知道如何修复它并正确显示也很好。

Ste*_*itt 5

渲染问题是由空字节引起的,这些字节被 ANSI 编辑器显示为空格(大概是在 DOS 下,尽管我没有检查过\xe2\x80\x99t)。

\n

要解决此问题:

\n
tr '\\0' ' ' < 67_Calendar_2020_06_June.ans | iconv -f CP437 -t UTF8\n
Run Code Online (Sandbox Code Playgroud)\n