スクリプトが端末に表示できる文字を決定できますか?

スクリプトが端末に表示できる文字を決定できますか?

UTF-8文字を出力として表示するスクリプトを作成しています。私のGnomeターミナルでは、素敵なカエデの葉(

答え1

端末で実行されているアプリケーションは、端末で描画された文字の外観がどのようなものであるか(または代替/プレースホルダ文字であるかもしれません)、端末で理解する方法はありません。

アプリに関する1つのことできるあなたがしなければならないのは、端末がUTF-8をサポートしているのか、それとも可変幅の文字をサポートしているのかを確認することだけです。以下の方法:

  • [ 6 nESCを書き、ESCを期待してカーソル位置を読みます。[ ワイヤー ; うつ病 R
  • 2バイトシーケンスを書き込みます"\xc2\xa0"。端末がUTF-8をサポートしている場合、これは切り捨て防止スペースです。端末がUTF-8をサポートしていない場合は不明ですが、2つの文字位置を使用できます(Â実際には改行しない空白が続く可能性があります)。
  • カーソル位置をもう一度読んで、カーソルが1つの位置に移動したか2つの位置に移動したかを確認します。

端末がUTF-8をサポートしている場合は、基本的に同じ方法を使用して可変文字幅をサポートしていることを確認できます。カーソル位置を読み、「あ」のように2幅フォントでなければならない文字を書き、カーソル位置をもう一度読みます。端末が2バイト文字をサポートしていない場合、カーソルは素朴に1つの位置しか移動できません。

関連情報