XtermはUnicode文字を表示しません。

XtermはUnicode文字を表示しません。

鉱山はxtermUnicodeをサポートしています。たとえば、ユーロ記号が表示されます。

echo -e '\xe2\x82\xac'

ただし、特定の文字は表示されません。

PL_BRANCH=$'\ue0a0'
echo $PL_BRANCH

他の端末(ターミネーター)では、文字が正しく表示されます。両方の端末で同じフォント(Inconsolata)を使用しています。

原因は何ですか?解決策は何ですか?

ベストアンサー1

文字が実際に指定したフォントではありません。次のコマンドを使用してこれを表示できますxfd

xfd -fa inconsolata

これは、最後のコードポイントがU + 2423であることを示しています。もう少し読んでみると、この文字がUnicodeになっていることがわかりました。使用地域、そして(事実にもかかわらず一部フォントで利用可能です)には標準的な意味はありません。

~から2018年末、xtermはさまざまなTrueTypeフォントをロードできますが、現在利用可能なフォントにはU + E0A0は含まれていません。

使用されている実際のフォントを識別できる場合は、誰かがそれを処理できるxtermバージョンを指摘できますか?

フォント検索に影響を与えるxtermと同じライブラリインタフェースを使用しないterminatorことについてのコメントを解決するために(両方ともよく文書化されていません)。terminatorこれを使用して、strace実際にどのフォントファイルが開いているかを確認できます。

たとえば、を使用していくつかのナビゲーションを実行し、strace私のDebian /テストでこの文字のOpenOfficeフォントの1つを開きます。konsolepterm

2600               
2600) = 3                                     
2586
2601   
2601)=4                 

(「OpenSymbol」シリーズのファイルです。)

一方、rxvt-unicode複数の文字があり、その文字が表示されないことがわかりました。フォントスタイルこれらの問題を解決(試行)するために検索リストに追加されました(最終的にはフォント設定の問題を反映)。おそらく似たようなものが見つかるでしょう(しかしその他) konsoleとptermをサポートするライブラリにあります。

おすすめ記事