Terminal

Linux 上的 ANSI 藝術中缺少一個字元

  • September 26, 2020

為什麼這個 ANSI 藝術不能在 Linux 終端上正確呈現的延續

Linux 終端上的 ANSI 藝術在 ANSI 藝術編輯器(如PabloDraw)中正確呈現,我還有一個問題。

該文件是另一個日曆頁面,但這次是五月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 藝術)。

第五行有一顆星,CP-437 中的 0x0F;這在 UTF-8 中保持原樣,應該是這樣,但在終端中它是一個不可列印的字元 (Ctrl-Q),因此它會在輸出中消失。這會將文件的其餘部分向左移動一個字元,從而產生您提到的所有其他效果。它不是可列印的圖形;它是一個 C0 控制程式碼。用 U+263C (☼) 替換它,看起來會更好。

引用自:https://unix.stackexchange.com/questions/611503