この問題は、次のように私のUbuntu 18システムに関連しています。
% uname -a
Linux myhost.name.net 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
定期的なシステムアップグレード中に、次の作業がどれくらいの期間進行しているかはわかりませんが、すべての端末ウィンドウがUTF-8
文字を書いていることがわかります。すべての端末ウィンドウを使用us.ascii
したいです。iso-8859-1
これを設定できる場所が見つかりません。
また、すべてのキーボード入力はのように見えますが、私にUTF-8
なりたいです。us.ascii
iso-8859-1
デフォルトでは、このLANG
変数はターミナルウィンドウで実行されているすべてのシェルでに設定されますが、en_US.UTF-8
設定ファイルでは意図的に設定されません。
私が知る限り、この問題は、およびxterm
でrxvt
発生し、urxvt
そのプログラムのいずれも悪用するように構成されていません。UTF-8
私は走っていますXFCE4
。それがどんな変化をもたらしたら。XFCE4
設定でもこれの設定が見つかりません。
us.ascii
すべてのターミナルウィンドウに常にまたはが表示され、iso-8859-1
すべてのキーボード入力もus.ascii
可能になるようにシステムをリセットする方法を提案できる人はいますかiso-8859-1
?
とても感謝しています。
答え1
ほとんどの最新のLinuxソフトウェアは、ロケール環境変数で使用される文字セットを決定するため、特定の設定が見つかりません。locale
現在のロケール全体を表示するには、このコマンドを使用します。
確認してみました/etc/default/locale
か?システムのデフォルトロケールを設定するために使用される標準の Debian 構成ファイルです。 UTF-8の代わりにiso-8859-1を使用するには、次の手順を実行する必要があります。
en_US ISO-8859-1
行がコメントアウトされていないことを確認し、そうでない場合は/etc/locale.gen
ファイルを編集して実行します。sudo locale-gen
LANG
ロケール変数をLC_CTYPE
(または少なくとも)en_US.iso88591
正しい形式で(またはに従ってlocale -a | grep en_US
)指定してください。
Ubuntu 18 UTF-8システムからUTF-8ではなくISO-8859-1を使用する古いシステムに接続することが問題の場合は、接続全体をダウングレードするのではなく、発信接続に文字マッピングレイヤーを挿入することを検討してください。レガシーコーディングを処理するシステム。次のように小さなスクリプト(またはシェル関数)を作成します。
#!/bin/sh
luit -encoding 'ISO 8859-1' ssh "$@"
(リモートエンドポイントに厳格なUS-ASCIIを適用するには、ISO 8859-1
に置き換えますASCII
。)
必要に応じて名前を付けてください。ssh
以前の文字エンコードを使用してシステムに接続するときは、通常のコマンドの代わりにこのスクリプト/関数を使用してください。