터미널이 표시할 수 있는 문자를 스크립트가 결정할 수 있습니까?

터미널이 표시할 수 있는 문자를 스크립트가 결정할 수 있습니까?

저는 UTF-8 문자를 출력으로 표시하는 스크립트를 작성 중입니다. 내 Gnome 터미널에서는 예쁜 단풍잎(

답변1

터미널에서 실행되는 애플리케이션은 터미널이 그린 문자 모양이 어떤 것인지(또는 대체/자리 표시자 문자인 경우에도) 터미널에서 알아낼 수 있는 방법이 없습니다.

한 가지 응용 프로그램~할 수 있다터미널이 UTF-8을 지원하는지, 지원한다면 가변 너비 문자를 지원하는지 확인하는 것입니다. 방법은 다음과 같습니다.

  • [ 6 nESC를 쓰고 ESC를 예상하여 커서 위치를 읽습니다.[ ; 안부 R
  • 2바이트 시퀀스를 작성합니다 "\xc2\xa0". 터미널이 UTF-8을 지원하는 경우 이는 잘림 방지 단일 공백입니다. 터미널이 UTF-8을 지원하지 않는 경우 알 수 없는 내용이지만 아마도 2개의 문자 위치를 차지할 것입니다( Â실제로는 줄 바꿈하지 않는 공백이 뒤따를 것임).
  • 커서 위치를 다시 읽어 커서가 한 위치 또는 두 위치 이동했는지 알아봅니다.

터미널이 UTF-8을 지원하는 경우 기본적으로 동일한 트릭을 사용하여 가변 문자 너비를 지원하는지 확인할 수 있습니다. 커서 위치를 읽고, あ와 같은 고정폭 글꼴에서 2폭으로 간주되는 문자를 쓴 다음 커서 위치를 다시 읽습니다. 터미널이 2바이트 문자를 지원하지 않는 경우 커서는 순진하게 한 위치만 이동했을 것입니다.

관련 정보