Mac のターミナル (Terminal.app) から Debian GNU/Linux に telnet で接続して、コマンドラインや vim や emacs で日本語を入力しようとすると文字化けしてしまう。

「あいうえお」と入力したら、

Mac から Linux に telnet で接続すると文字化けしてしまう

「c^Bcc^Fc」なんて変わってしまった。

Mac から Linux に telnet で接続すると文字化けしてしまう

入力のタイミングなのか「cc^Bcc^Fc^Bcc^Bcc^Fccc^Bcc^Fc^Fcc^Bcc^Fcc^Bcc^Fc」とか長いのに変わってしまうことも。

文字化けというか非ASCII文字がエスケープされてしまうというか。

Linux 側のロケールを見てみたが問題なさそう。


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

ちなみに、Windows + TeraTerm や MacBook Air + Mac OS X + ssh で接続した場合は文字化けしない。。。

ということは telnet に問題があるということに。

telnet のヘルプを見てみると、それらしいのが見つかった。「-8」というオプションがある。

8 ビット動作を行う。 入力・出力の両方で、 TELNET BINARY オプションを用いるようにネゴシエーションを行う。 デフォルトの telnet は 8 ビットクリーンではない。

Man page of TELNET

例えば、ユーザー alice が thron サーバにログインするときにはこんな感じのコマンドで OK だった。


$ telnet -8 -l alice thorn

これで日本語入力しても文字化けしなくなった\(^o^)/

# そういえば、当初は vim で日本語を入力したら、文字化けどころか何も書き込めなかった。
# ~/.vimrc に設定を追加したら文字化け的なものが入るようになったのだった。
# vim よくわからぬ

tags: linux mac

Posted by NI-Lab. (@nilab)