web-dev-qa-db-ja.com

PuTTY / Debianで[Æ、Ø、Å]のような文字を有効にするにはどうすればよいですか?

私は開発サーバーで作業するためにPuTTYを介してVIMを使用していますが、タイトルに記載されているような文字を含むファイルで作業する必要がある場合はかなり困難になります。 VIMこのように見えます

Javascript eraktivertのDenneapplikasjonenkrever。 BrukennettlesersomstøtterJavaScriptelleraktiverJavaScriptidinnÃ¥værendenettleser。

しかし、それは完全にVIM upであり、入力時にテキストが表示される場所に対して、視覚的なキャレットが完全にランダムな場所に座っているようにします。

私が編集しているファイルはISO-8859-1エンコーディングを使用しています

root@foo:~/www/pltest# file --mime-encoding index.php
index.php: iso-8859-1

また、PuTTYは、[設定]-> [ウィンドウ]-> [変換]でISO-8859-1を期待するように設定されています。したがって、唯一の問題はDebianである可能性があります。上記の文字のいずれかをコンソールに入力しようとすると、ランダムに表示されます。

root@foo:~/www/pltest# ���������

DebianにISO-8859-1シンボルを許可させる方法はありますか?


解決しました(部分的に)!どうやらシンボルの表示は、/ etc/locale.aliasを印刷し、リストでロケールを見つけ、対応する言語コード(私の場合はnb_NO.ISO-8859-1)をLANG環境変数に設定するのと同じくらい簡単でした。ただし、PuTTYウィンドウに文字をtype入力することはできません。試してみると、Windowsエラー「Ding」が聞こえます。

何か案は?

2
Hubro

非ASCII文字が機能するためには、関連するすべてのプログラムが同じ文字エンコードを使用する必要があります。エンコーディングを設定する必要があります:

  • 1)PuTTYで(あなたはそれをしました)
  • 2)リモートシステム上(通常、LANG env変数を適切なロケールに設定することにより)

次に、コンソールで非ASCIIを使用すると機能するはずです。

Vimの設定は(ほとんど)これとは無関係です。 vimには、編集するファイルをエンコードするための独自の内部設定があり、システム設定(つまり、LANGを使用して設定されたロケール)に適したテキストを自動的に再エンコードします。

あなたの問題に対処するために:

PuTTYで同じエンコーディングを設定し、LANGを使用することで、1)と2)を処理したようです。これで、非ASCII文字を使用したファイルの編集はvimで機能するはずです。ただし、vimがファイルのエンコードを認識している場合(自動検出、またはvimで:set fileencoding=UTF-8などを実行)。

「非ASCII文字を入力するときにDingを取得する」について:set input-meta on~/.inputrcに入れる必要がある場合があります(これにより、readlineライブラリに非ASCII文字を入力するように通知されます) -しかし、最近のほとんどのLinuxディストリビューションでは、これはもう必要ありません。

Vimのような他のプログラムが非ASCIIのものを受け入れるかどうかを確認してみてください-それは問題がどこにあるかを教えてくれるはずです。

最後のコメント:

ISO 8859-1を使用するようにロケールを設定することは確かに機能しますが、通常、長期的にはUTF-8を使用する方が適切です。 UTF-8は、西洋言語だけでなく、ほぼすべての言語で機能し、急速に最新のLinuxディストリビューションの標準になりつつあります。

Vimは自動的にトランスコードできるため、vimでISOエンコードされたファイルを引き続き操作できることに注意してください(ファイルがUTF-8にないことを自動検出することもあります)。

6
sleske

さて、Debianベースのシステム(Ubuntuサーバー)のPuTTYに非ASCII文字を入力しようとすると同じ問題が発生します。私の修正は完全に機能し、次のとおりです。

1)[設定]-> [ウィンドウ]-> [翻訳]のPuTTYで文字セットをUTF-8に変更しました
2)サーバーで$ LANG環境変数がen_us.UTF-8に設定されていることを確認しました
3)次のオプションを使用して〜/ .inputrcを作成しました。

set input-meta on
set output-meta on
set convert-meta off 
set enable-meta-key on

4)ログアウトし、再度ログインします(これが必要かどうかはわかりません)
5)これで、非ASCII文字をコピーして端末に貼り付けることができ、メタキーを使用して次のような文字を手動で入力できます:ƒ、å、Ü...

手順3で使用したオプションについて詳しく説明している次の「マンページ」を参照してください。 http://www.gnu.org/software/bash/manual/html_node/Readline-Init-File-Syntax .html

これが誰かに役立つことを願っています。乾杯。

2