Mac OS X(バージョン10.5.8)の「ターミナル」をEUC-JPモードにしてUNIXにtelnetでログインすると、日本語が入力できないことに気付いた。sshではできていたので、支障がないので放ってあったのだが、今回、sshでは入力できることを忘れていて、調べまくってしまった。
リモート側でod -xして入力を16進表示すると、7bit目が落ちていた。ありがちなパターンである。
しかし、Macの「ターミナル」の設定の「非アスキー入力をエスケープする」はOFFにしてあるし、telnet接続後にstty allとすると、ちゃんと"cs8","-parenb","-istrip"になっていた。念のため"stty pass8"とやったが、変わらなかった。「ターミナル」の問題でもttyの問題でもなく、telnet接続の問題のようである。
そこで、man telnetしたら1ページ目に出てきた、-8オプションを使ってみたが、状況は変わらなかった。ところが、
telnet> set binaryすると、日本語が入力できるようになった。それに代えて、telnet接続してからCtrl+]でtelnetモードに入って"set binary"としても日本語が入力できるようになった。しかし、それらと同じ意味のように読める"telnet -8"ではやはりできなかった。
telnet> open ...
仕方なく、しばらくの間、~/.telnetrcに
(hostname)と書いて回避していたが、その後も気になって複数の接続先に対して色々試している内に、いつの間にか"telnet -8"でも日本語入力できるようになっていた。何だったのだろう??
set binary ←先頭はスペース
コメント