이 ANSI Art가 Linux 터미널에서 올바르게 렌더링되지 않는 이유는 무엇입니까?

이 ANSI Art가 Linux 터미널에서 올바르게 렌더링되지 않는 이유는 무엇입니까?

내 라이브러리가 이 ANSI 아트웍을 올바르게 렌더링하지 못하는 이유를 조사하려고 합니다.

ANSI 육식성 꽃 예술

문제는 ANSI 이스케이프 처리에 있지만 실제 터미널(XFce 터미널에서 테스트)에서도 동일한 것 같습니다.

ANSI 아트가 있는 터미널

이것을 디버깅하는 방법을 모르겠습니다. 파일은 CP437 인코딩으로 되어 있으며 다음에서 찾을 수 있습니다.16color.rs 웹사이트. UTF8로 변환했으며(한 줄당 문자 수를 표시하는 메타 태그도 제거됨) 파일은 여기에서 찾을 수 있습니다.https://jcubic.pl/text.ans터미널에는 80개의 열이 있어야 합니다. 그렇지 않으면 제대로 표시되지 않습니다.

왜 깨졌는지 답변드리고 싶지만, 고치고 올바르게 표시하는 방법도 알아두면 좋을 것 같습니다.

답변1

렌더링 문제는 ANSI 편집기에서 공백으로 표시되는 널 바이트로 인해 발생합니다(아마도 DOS에서는 확인하지 않았지만).

이 문제를 해결하려면:

tr '\0' ' ' < 67_Calendar_2020_06_June.ans | iconv -f CP437 -t UTF8

관련 정보