ssh
VPSに入ると画面irssi
で起動します。誰かがUnicode文字(©や€など)を送信すると、irssi
セッション画面で使用するとゴミが表示されますssh
。 irssiのプロキシモジュールを使用して自分のローカルコンピュータirssi
で実行されているirssiのモジュールに接続すると、正しく表示されます。
同様に、オフスクリーン(VPS)でghciを実行してこれらの文字のいずれかを入力すると、競合が発生します。
そのため、SSHまたはシステム設定でVPSに接続するときに何らかの文字エンコードの問題があるようです。
この問題の原因をどのように把握して解決できますか?
詳細:
クライアントシステム
- Arch Linux x64
- UTF-8エンコーディング
VPSシステム
- Ubuntuサーバー10.04
- 不明なエンコーディングを使用してください。これをどうやって見つけますか? (/etc/rc.confでArchを探すだけです)
答え1
このlocale
コマンドを実行すると、ロケールに関する情報が提供されます。文字エンコーディングは設定に従って提供されますLC_CTYPE
。
Ubuntuではデフォルトのロケールが/etc/default/locale
。 VPSLC_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
)。
答え2
実際、LC_CTYPE に提供される値はロケールです。名前。名前に文字セットエンコーディングを含めることは慣例ですが、必須ではありません。
ただし、文字セットを正確に知りたい場合は、コマンドはです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値に文字セットが表示されないことに注意してください。)