VPSにssh
すると、画面でirssi
が実行されます。誰かがユニコード文字(©や€など)を送信すると、irssi
セッションの画面から使用すると、ssh
が文字化けを表示します。ローカルコンピューターで実行されているirssiから、irssiのプロキシモジュールを使用してそのirssi
に接続すると、正しく表示されます。
同様に、VPS(画面外)でghciを実行し、それらの文字の1つを入力すると、クラッシュします。
つまり、sshまたはシステムセットアップのいずれかで、VPSへの接続に何らかの文字エンコードの問題があることは明らかです。
これを引き起こしている原因を見つけて解決するにはどうすればよいですか?
詳細:
クライアントシステム
VPSシステム
locale
コマンドを実行すると、ロケール設定に関する情報が得られます。文字エンコードはLC_CTYPE
設定で指定されます。
Ubuntuでは、デフォルトのロケール設定は/etc/default/locale
で提供されます。 VPSのLC_CTYPE
に~/.profile
を設定することで、文字エンコーディングを変更できます。
export LC_CTYPE=en_US.UTF-8
en_US.UTF-8
ロケールが使用可能であることを確認する必要があります。 Ubuntuは、要求されたロケールのロケールデータのみを生成します。パッケージlanguage-pack-en-base
がインストールされている場合は、すべての英語ロケールを使用できます。あなたは手動で世代を要求することができます
Sudo locale-gen en
/var/lib/locales/supported.d/local
にエントリを追加して、特定のロケールがインストールされていることを確認することもできます(例:en_US.UTF-8 UTF-8
を追加)。
実際には、LC_CTYPEで指定される値はロケールnameです。文字セットエンコーディングが名前に含まれるのは慣例ですが、必須ではありません。
しかし、確かに、文字セットを知りたい場合、コマンドはlocale -k charmap
。
~$ LC_CTYPE=C locale -k charmap
charmap="ANSI_X3.4-1968"
~$ LC_CTYPE=fr_BE locale -k charmap
charmap="ISO-8859-1"
(文字セットが上記のLC_TYPE値に表示されないことに注意してください)。