sshと文字エンコード


16

いつssh私のVPSに、私がしているirssi画面で実行されています。誰かがユニコード文字(©や€など)を送信するirssiと、sshセッションの画面で使用するとガベージが表示されます。irssiローカルコンピューターで実行中のirssiからirssiのプロキシモジュールを使用して接続すると、正しく表示されます。

同様に、VPS(画面外)でghciを実行し、それらの文字の1つを入力すると、クラッシュします。

したがって、明らかに、sshまたはシステムセットアップのいずれかで、VPSへの接続に何らかの種類の文字エンコーディングの問題があります。

これの原因を見つけて解決するにはどうすればよいですか?

詳細:

クライアントシステム

  • Arch Linux x64
  • UTF-8エンコード

VPSシステム

  • Ubuntu Server 10.04
  • 不明なエンコードが使用されました。これはどうやって見つけますか?(Archの/etc/rc.confを調べるだけです)

回答:


18

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)。


3

実際には、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値に文字セットが表示されないことに注意してください)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.