这个延续为什么这个 ANSI Art 无法在 Linux 终端上正确渲染
我在 Linux 终端上还有一个关于 ANSI 艺术的问题,该问题在 ANSI 艺术编辑器中正确呈现(例如巴勃罗·图)。
该文件是另一个日历页面,但这次是五月https://16colo.rs/pack/blocktr0nics30302020/67_Calendar_2020_05_May.ans
这是终端上的样子:
最后是 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 (☼),事情看起来应该会更好。