Terminal.app の文字セットの変更 - 完全に判読不能

Terminal.app の文字セットの変更 - 完全に判読不能

私はちょうどssh自分のサーバー (Ubuntu 10.04.2) にログインして、aptitude(対話モードで) 実行しました。キーを 1 つ (文字の 1 つだとg思います) 押すと、次のように変わりました (SSH セッションだけではなく、sshセッションを終了した後もこの動作が続きました)。

第1学期

第2学期

再接続するとすべて正常になりますが、aptitude再度実行すると、同じ問題が発生します (ただし、奇妙なことに、 は 内に収まりますaptitude)。

何が起こっているのか、誰か分かるでしょうか? 参考になれば幸いですが、私は というプロファイルscreenで実行しており、 を10.6.7 で使用しています。byobu$TERMscreen-bceTerminal.app

答え1

コマンドを使用してreset通常のターミナルに戻すことができます。

なぜこのようなことが起こるかというと、何らかの理由で、端末が ASCII ではなくバイナリ データを取得しているからです。

答え2

このスレッドはほぼ 1 年前のものだと認識していますが、Apple の Terminal.app で実行ファイルの内容を表示するために「cat」を使用した後に私自身もこの問題に遭遇したばかりなので、この状況は将来のユーザーにも影響する可能性があると考えています。

いずれにせよ、私が知る限り、奇妙な文字は ASCII の「シフト アウト」文字 (10 進数 14、0x0E) が印刷された後に表示されます。(まあ、「印刷」という言葉は適切ではないかもしれませんが、少なくとも Terminal.app では、これは印刷可能な文字ではないからです。しかし、私の言っている意味はおわかりだと思います。) 幸いなことに、ASCII の「シフト イン」文字 (10 進数 15、0x0F) が印刷されると、ターミナルは正常に戻ります。

つまり、次のような C プログラムを書いたとします...

#include <stdio.h>
int main() {
   printf( "\x0F" );
   return 0;
}

すべてが正常に戻るはずです。別の言語や bash シェル内ではもっと簡単な方法があるかもしれませんが、これでおわかりいただけたと思います。

どうやら、この奇妙な動作はバグではなく、むしろ(少なくとも私にとっては)わかりにくい機能のようです。情報を検索したところ、端末の動作のベースとなっていると思われるISO 2022にたどり着きました。ISO/IEC 2022に関するWikipediaの記事

奇妙なキャラクターの背後にある謎が解明されたので、この投稿が役に立つことを願っています。

答え3

メニュー項目

ターミナル > シェル > リセットを送信

文字セットを含む端末状態をデフォルトにリセットし、この特定の問題を解決します。

関連情報