web-dev-qa-db-ja.com

文字化けした文字を示すPuTTYを修正する方法

Windows 7 PCからSSH経由でUbuntuサーバーに PuTTY を使用して接続すると、画面エラーが発生します。

enter image description here

つまりそれ:

  • Midnight Commander (MC)内の選択を「二重描画」します。
  • 線要素などの他の文字が間違った文字として描画されます(例: "|"ではなく "â")。

端末とMac OS XからのSHHを使用して同じUbuntuサーバーに接続しましたが、これらの画面が文字化けしません(つまり、すべてが正常に動作します)。私はすでにPuTTY内のフォント設定を試し、Courier NewからConsolasに変更しましたが、運がありませんでした。

私の質問は次のとおりです:

PuTTYを構成して、特殊な文字を正しく表示し、画面の線を二重に描画/上書きしないようにするにはどうすればよいですか?

85
Uwe Keim

あなたはほぼ間違いなく あなたのPuTTY設定 で間違った文字セットを設定しました。

次のコマンドを実行して、リモートシステムの文字セットを確認します。

locale

これは次のようなものを返すはずです:

LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

TranslationでPuTTY設定を確認し、UTF-8文字セットとして設定します。

PuTTY Reconfiguration

線の描画設定も微調整する必要があるかもしれませんが、おそらくそうではありません。

76
Michael Hampton

文字セットとしてUTF-8を使用していても、Debianのaptitudeプログラムに問題がありました。私にとってうまくいったのは、「接続」>「データ」>「端末タイプ文字列」を「xterm」ではなく「PuTTY」に設定することでした-明らかにPuTTYは文字シーケンスを無視して描画モードに切り替えます: http:// www .chiark.greenend.org.uk /〜sgtatham/PuTTY/wishlist/utf8-plus-vt100.html

enter image description here

35

また、UTF-8が適切に構成されていない場合は、mc -acとして実行できます。

クレジット: http://blog.acsystem.sk/linux/midnight-commander-utf8-line-drawing-characters-problem

12
hoppy

ここと他の多くの場所で説明されているように、2つの基本的な要素は、PuTTYのWindow/Translation UTF-8とLinuxのロケール設定です。

さらに、PuTTYでConnection/Data/Terminal-type文字列をPuTTYに設定すると、Linuxで役立つ場合があります。 export NCURSES_NO_UTF8_ACS=1。これら2つは、複数の場所で言及されています。

ただし、CourierやLucida ConsoleなどのデフォルトのフォントにはすべてのUnicode文字がないため、特定の文字のブロックが引き続き表示される場合があります。 http://dejavu-fonts.org/wiki/Download をダウンロードしてインストールし、それを使用するようにPuTTYを設定します。

この最後のトリックは、すべてのグラフィック文字を表示するためにnoping(推奨!)を取得するために必要でした。

9
GauteLund

15年後、私はもう一度イライラして、もう一度ググって、これを見つけて選びました

設定の変更→ウィンドウ→翻訳→リモート文字セット→「フォントエンコーディングの使用」

そしてそれはそれを修正しました。

7
jason

私の場合(Ubuntu 14.04)、問題は欠落が原因でした

UsePAM yes    

/ etc/ssh/sshd_configの/etc/pam.d/sshdとしてのエントリpam構成は、デフォルトで/ etc/default/localeをユーザー環境にロードする責任があります。

6
fakej Gazeta.pl

ここで終わるすべての貧しい古いVMSの人のために:

PuTTY→ウィンドウ→翻訳→リモート文字セット→DEC-MCS

私のために働いた。

6
David Rabahy

私はDockerマシン(ロケールとシステム管理者によってセットアップされたマシンの両方)を使用するときに、このための多くの解決策を探していました。私のPuTTYではすべてが問題なく(私はUTF-8を持っていました)、他のSSHクライアントも使用しており、まったく同じ問題がありました。

ランニング:

mc -ac

問題を解決していましたが(完全ではありません)、完全な解決策を探していました。

多くの提案を読んだ後、私は最終的に私の問題を解決するものを見つけました。

ターミナルで実行すると:

locale

設定したロケールを確認します。デフォルトではCロケールでした。

インストールされているすべてのロケールを確認するには、locale -aを実行します

私は例えば:

C
C.UTF-8
POSIX

デフォルトでは。

解決策は、次のようにC.UTF-8ロケールでLANG変数をエクスポートすることです。

export LANG="C.UTF-8"

.bashrcに追加して、プロファイルに自動的に設定することもできます。

5

WindowTranslationページで、文字セットを次のように設定する必要がありました。

ISO-8859-1:1998(ラテン-1、西ヨーロッパ)

その後、その時だけ、線画文字が正しく表示されました。

3
zootal

Powerbroker/pbis/likewise認証を使用するホストに影響を与える可能性のあるpamに関連する別の理由。

「lsass」が発生した場合のgrep /etc/pam.d:

grep -r lsass /etc/pam.d

次のような出力が表示される場合:

/etc/pam.d/common-session:session       sufficient        pam_lsass.so

それはおそらく問題の根本的な原因です。迅速な修正は、pam_lsassモジュールの横にある「十分」を「オプション」に置き換えることです。

/etc/pam.d/common-session:session       optional        pam_lsass.so

/etc/pam.d/common-session(または同様のエントリを持つ他のファイル-それらのいくつかは存在する可能性があります)は、pam_envがロードされる前に/etc/pam.d/sshdによってインクルードされるため、pamモジュールの処理が終了した場合pam_envになる前に、/ etc/default/localeがユーザー環境に読み込まれず、文字化けが発生します。

2
fakej Gazeta.pl

多くの回答で述べたように:

PuTTY>ウィンドウ>翻訳>リモート文字セット> UTF8

ソリューションです。

ただし、Session> Default settingsに移動し、Save。成功を確認するメッセージは表示されませんが、それが実際にデフォルトになります。

enter image description here

1
Basj

この方法でmcを実行すると(ロケールをenに設定)、私にとってはうまくいきます。

$ LC_ALL=en mc
1
marioosh

私にとってうまくいったのは、「接続、データ、端末タイプの文字列= ansi」と「ウィンドウ、翻訳、リモート文字セット=フォントエンコーディングを使用する」、そしてset TERM=ansi UNIX側。

PS。 MS-Wordを使用せざるを得ない場合は、スマートクオートをオフにしてください。

1
TRM

ウィンドウ→翻訳→「UTF-8モードでもVT100線描画を有効にする」.

これにより、mcwavemonの両方の表示が修正されます。

enter image description here

1

私の問題は、PuTTYがUTF-8として構成されているが、リモートシステムはISO-8859-1であるということでした。

西ヨーロッパなので、PuTTYでそれを変更し、何も問題なく動作しました。

PuTTYスクリーンショット

1
velteyn