Linux 上的 ANSI 艺术缺少一个字符

Linux 上的 ANSI 艺术缺少一个字符

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

我在 Linux 终端上还有一个关于 ANSI 艺术的问题,该问题在 ANSI 艺术编辑器中正确呈现(例如巴勃罗·图)。

该文件是另一个日历页面,但这次是五月https://16colo.rs/pack/blocktr0nics30302020/67_Calendar_2020_05_May.ans

花上蜜蜂的 ANSI 艺术

这是终端上的样子:

带有 ANSI 艺术的终端窗口

最后是 SAUCE 元标记,在渲染时应将其删除。但问题是左上角有渐变,最后两个元素在 Linux 终端的右侧。另一件事是缺少最后一个字符(它显示为 � 但这是 SAUCE 记录的开始并标记这是艺术品的结束)。

我正在尝试修复的 JavaScript 也是如此https://codepen.io/jcubic/pen/pxdxmN?editors=0110(输入cat 67_Calendar_2020_05_May.ans以渲染 ANSI 艺术)。

答案1

第五行有一个星号,CP-437 中是 0x0F;在 UTF-8 中,它应该保持原样,但在终端中,它是一个不可打印的字符 (Ctrl-Q),因此它会在输出中消失。这会将文件的其余部分向左移动一个字符,从而产生您提到的所有其他效果。它不是可打印的图形;它是一个C0控制代码。将其替换为 U+263C (☼),事情看起来应该会更好。

相关内容