MoshのNCurses、代替文字セット

MoshのNCurses、代替文字セット

地平線を描く最も簡単なプログラム:

int main()  
{ initscr(); for (int i=0;i<10;i++) addch(ACS_HLINE); getch(); endwin(); }

ローカルではうまく機能しますが、MOSHを介して接続した場合の結果はqqqqqqqqqqqです。

他の有名なncursesプログラムをこのようにテストしました(MOSHを介して接続されています)。しかし、他のテストでは、「醜い文字」も表示されました。例:Tetrisゲーム(bastet)、ダイアログボックス(シェルスクリプトでダイアログボックスを表示します)。

したがって、私のプログラムであるTetris、Dialog、およびその他のプログラムに関する上記の質問は次のとおりです。

  • デフォルトでは、xtermと仮想端末(term = linux)とtmux / screenで動作します。
  • SSH経由でもうまく機能します。
  • MOSH クライアントで行の代わりに q および x 文字を表示します。

Moshは、ラップトップWi-FiでSSHの切断の問題を解決するのに非常に便利なプログラムです。独自の端末を作成し、TERM変数をxtermに設定します。 moshを介してプログラムを開始する前に、用語変数は「xterm」であり、ロケールコマンドはLANG = en_US.UTF8,LC_ALL = ""とマークされており、フォントは問題なく見えました(他のフォントをテストしても同じ結果が表示されます)。

この問題を解決したり、さらにデバッグする方法を知っている人はいますか?

最も簡単なシミュレーション:

sudo apt-get install mosh bastet    #<--install mosh and tetris
bastet                              #<--tetris works ok
mosh -- 127.0.0.1 bastet            #<--q and x chars instead of lines

ベストアンサー1

ncursesのマニュアルページにあります:環境NCURSES_NO_UTF8_ACS端末が使用しているVT100スタイルの線画コードを認識しないことを通知するように設定できます。また、U8端末記述の機能(TERM=tmux例:use)も同じ内容を伝えます。

最新の端末説明を保持moshncurses端末データベースから。要約すると、線を引く以上の問題があります。

おすすめ記事