![이 ANSI Art가 Linux 터미널에서 올바르게 렌더링되지 않는 이유는 무엇입니까?](https://linux55.com/image/180702/%EC%9D%B4%20ANSI%20Art%EA%B0%80%20Linux%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20%EC%98%AC%EB%B0%94%EB%A5%B4%EA%B2%8C%20%EB%A0%8C%EB%8D%94%EB%A7%81%EB%90%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
내 라이브러리가 이 ANSI 아트웍을 올바르게 렌더링하지 못하는 이유를 조사하려고 합니다.
문제는 ANSI 이스케이프 처리에 있지만 실제 터미널(XFce 터미널에서 테스트)에서도 동일한 것 같습니다.
이것을 디버깅하는 방법을 모르겠습니다. 파일은 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