お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-12-06 08:13:22

aiwata55
新しいメンバ
登録日: 2011-12-06

UbuntuにSSH接続中、日本語入力を受け付けるには?

Ubuntu 10.04 LTS デスクトップ版を使用しています。
System > Administration > Language Support で日本語を有効にし、また IM としては ibus を有効にしているため、Ubuntu デスクトップ上や Ubuntu の Terminal では日本語の読み書きが可能です。

この Ubuntu に、Mac OS X 10.7 Lion の Terminal から SSH アクセスし、日本語入力をしたいのです。Ubuntu の Terminal 上で

コード:

echo "日本語入力テスト" > test

などとして作成したファイルの内容は Mac の Terminal 上からでも確認できていますが、入力ができません。日本語入力して変換、確定すると、「ポン、ポン、ポン」とエラー時の警告音が出て、プロンプトには何も表示されないか、たまに

コード:

\: \! . \[ \[\[ ]] \{ } 2to3 2to3-2.6 a2dismod _a2dismod a2dissite _a2dissite a2enmod _a2enmod a2ensite _a2ensite a2p aa-audit aa-autodep aa-complain aa-decode aa-enforce aa-genprof aa-logprof aa-status
...
zjsdecode zless zmore znew zsoelim

のように長いテキスト(利用可能なコマンド一覧だと思います)が表示されたりもします。

Mac の Terminal から接続した状態で nano の画面で

コード:

あいうえお

と入力したつもりでも、nano のエディタには

コード:

?^?^??^?^??^?^??^?^??^?^

と表示されてしまいます。
ただし、このまま保存し、そのファイルを cat で確認すると、ちゃんと「あいうえお」と表示されましたが。

どなたかご教授をお願いいたします。

オフライン

 

#2 2011-12-06 11:12:20

ginvxice
メンバ
登録日: 2011-11-25

Re: UbuntuにSSH接続中、日本語入力を受け付けるには?

mac が手元に無いので確認ができないのですが、文字コードの関連だろうと思い検索すると、次のページが見つかりました。参考になればと思います。
http://blog.delta50.net/2009/04/mac-os-x-terminal-ssh.html

オフライン

 

#3 2011-12-06 12:03:09

aiwata55
新しいメンバ
登録日: 2011-12-06

Re: UbuntuにSSH接続中、日本語入力を受け付けるには?

ginvxice さん、早速のコメント、ありがとうございました。

リンク先を拝見したのですが、ちょっと僕の環境とは違うのかな、と思いました。せっかくお教えいただいたのに、すみません。

Ubuntu のロケール設定は以下の通りです。

コード:

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

Mac OS X のロケール設定は以下の通りです。

コード:

LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

最後に、Mac OS X の Terminal.app の文字コードは“Unicode (UTF-8)”に設定されています。

以上から、「サーバー、クライアント、ターミナルのいずれも UTF-8 で統一されている」と思っていたのですが...間違っていますか?

オフライン

 

#4 2011-12-06 15:40:44

ginvxice
メンバ
登録日: 2011-11-25

Re: UbuntuにSSH接続中、日本語入力を受け付けるには?

mac は、よくわかりませんが、
のりかけた船でもありますし、あまり返事がないようですし、文字コードは本で少しかじりましたので、
また勉強するつもりでお付き合いさせていただきます。

整理すると、
ubuntu 単体における日本語の入出力は成功
mac から ubuntu への ssh は成功
mac から ubuntu への ssh の成功後、 echo "あいうえお" > test は失敗
nano のプロセスにおける日本語入力に対して、表示は失敗し、保存は成功

ロケールの設定をみると、
ubuntu におけるシステムの言語は英語(日本語サポート設定済み)
mac  におけるシステムの言語はC

おそらく、この mac のロケールが問題なのではないかと思います。

また、UTF-8 とは、文字コードそのものではなく、変換方式の一つで、文字を表す数値をある特定の言語に変換する時の規則です。よって、mac の LANG は C で UTF-8 ではありません。表示のためにUTF-8 で変換されて表示される C です。

質問ですが、
nano は、mac のプロセスでしょうか。ubuntu のプロセスでしょうか。おそらく、mac からubuntu への ssh 成功後の ubuntu のプロセスではないでしょうか。そうであれば、保存は ubuntu で行い、表示は mac ですから、表示のみが失敗するという現象も説明できます。
ということは、そもそも、mac 単体における日本語に入出力は成功するのでしょうか。
成功しなければ、 「 ubuntu 」 の問題ではなく、「 mac の問題」と思います。mac の LANG を変更すれば解決するのではないでしょうか。

間違っていましたらご指摘ください。

オフライン

 

#5 2011-12-06 16:41:38

aiwata55
新しいメンバ
登録日: 2011-12-06

Re: UbuntuにSSH接続中、日本語入力を受け付けるには?

ginvxice さん、お付き合いいただき、ありがとうございます。

ginvxice による投稿:

nano は、mac のプロセスでしょうか。ubuntu のプロセスでしょうか。おそらく、mac からubuntu への ssh 成功後の ubuntu のプロセスではないでしょうか。

その通りです。

なお、関係ないかもしれませんが、Mac から Ubuntu へ SSH での接続確立後に Mac の Terminal 上で nano を立ち上げ、そこで文字化けをしながら入力・保存した日本語文字列は、Mac の Terminal 上でも、Ubuntu の Terminal 上でも正常に日本語表示されました。(cat コマンドにより確認)

ginvxice による投稿:

そもそも、mac 単体における日本語に入出力は成功するのでしょうか。
成功しなければ、 「 ubuntu 」 の問題ではなく、「 mac の問題」と思います。mac の LANG を変更すれば解決するのではないでしょうか。

Mac の Terminal で Mac にログインしている状態では、日本語の入出力は問題なく行えています。

オフライン

 

#6 2011-12-06 17:01:26

ginvxice
メンバ
登録日: 2011-11-25

Re: UbuntuにSSH接続中、日本語入力を受け付けるには?

まず、ubuntu 側で保存が成功していますので、やはり、これは mac 側の表示の問題です。両方ともシステム言語が日本語でなく、ある一定の範囲(terminal プロセスなど)に限定されて日本語サポートが適用されています。つまり、mac 側の ssh プロセスには日本語サポートが適用されていません。そこで、ログインした時点(bashプロセスが開始された時点)からすべてのプロセスに適用されるようにすれば・・・という観点から調べましたら、次のようなページがみつかりました。

http://d.hatena.ne.jp/t_mimori/20110212/1297498681

この .bash_profile で LANG を定義していれば、そこから派生する ssh プロセスにも適用されるはずです。

オフライン

 

Board footer

Powered by FluxBB