Utf-8の代わりにウエスタンエンコーディングを使用するサーバーの1つは、非常に頻繁にssh
です(これを変更する方法はありません)。
このサーバーに接続するためにbashスクリプトを書き始めたので、毎回アドレス全体を入力する必要はありませんが、このスクリプトを改善して、ターミナルウィンドウのエンコードも正しく変更したいと思います。
必要な変更は、「ターミナル」->「文字エンコーディングの設定...」->「西部(ISO-8859-1)」に移動して、マウスを使用して実行できます。現在の端末ウィンドウ/画面に対して同じことを行う端末コマンドはありますか?
明確にするために:
私はnotリモートサイトでシステムのロケールを切り替える方法に興味があります-そのシステムは他の誰かによって管理されています。そして、そこにあるlatin-1エンコーディングにどのようなものが依存するのか分かりません。私がやりたいのは、私の側のこのターミナルウィンドウに、マウスでできるのと同じように、文字エンコーディングを上記のものに切り替えさせることですおよびメニュー。
この目的のために設計されたluit
を探しています:
$ luit -encoding ISO-8859-1 ssh remote.Host
Sshコマンドの出力をUTF-8に変換するため、端末のエンコードを変更する必要はありません。
まず、お気に入りのエディターで現在のロケールを編集します
Sudo gedit /var/lib/locales/supported.d/local
など
en_GB.UTF-8 UTF-8
en_US.UTF-8 UTF-8
en_GB.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1
次にSudo dpkg-reconfigure locales
を実行します
次に、LANG=en_GB.ISO-8859-1
で端末を設定します
うまくいくことを願って
Gnomeターミナルはgconfを使用して設定を保存します。これらはgconftool
で操作できます。したがって、次を使用できます。
gconftool --set --type=string /apps/gnome-terminal/profiles/Default/encoding ISO-8859-1
これを12.04でテストしました。何らかの理由で、メニュー("Terminal"->"Set Character Encoding..."
)はリアルタイムで更新されないようですが、実際の文字エンコードは正しく更新されます。
運用サーバーに接続するときにプロファイル(背景色)を変更するために使用した別のソリューションを次に示します。 xdotool
が含まれます。
xdotool
は、目的のメニュー項目を選択するために必要なキーストロークをシミュレートします。まずキーボードで試してから、シーケンスを書き留めます。
$ xdotool key alt+t Down c Down Return
最初の文字エンコーディングを有効にします。他を選択するには、Down
の前にさらにReturn
キーを追加します。
注:ssh
の場合、~/.ssh/config
ファイルを使用してサーバーのエイリアスを構成することもできます。
私はそれをテストする方法がわかりませんが、KubuntuのKonsoleで次のことができます:
1)dbusに登録されているアプリケーションを見つける
$ qdbus
konsole
を使用しているので、簡単なqdbus | grep kons
でorg.kde.konsole
が得られます
2)Konsoleで現在のセッションを見つける
$ qdbus org.kde.konsole | grep Sessions
/Sessions
/Sessions/1
$ set | grep -i sessions
KONSOLE_DBUS_SESSION=/Sessions/1
3)便利な方法を見つける
$ qdbus org.kde.konsole /Sessions/1 | grep -i codec
method QByteArray org.kde.konsole.Session.codec()
method bool org.kde.konsole.Session.setCodec(QByteArray codec)
4)現在のエンコードを確認する
$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.codec
UTF-8
5)エンコードの設定
$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.setCodec ISO-8859-1
true
6)現在のエンコードを確認する
$ qdbus org.kde.konsole /Sessions/1 org.kde.konsole.Session.codec
ISO-8859-1
Ubuntuには同様のターミナルプログラムがありますが、正しいサービス名、パス、メソッド、および引数を使用して、いくつかの不可解な作業を行う必要があります。
xterm
で、 制御シーケンス を使用してエンコードを変更します。たとえば、bash
内では、次を実行してUTF-8文字セットを取得します。
echo -n $'\e%G'
ISO 8859-1コーディングは、次を実行することでアクセスできます。
echo -n $'\e%@'