
Ubuntu日本語フォーラム

ログインしていません。
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 で確認すると、ちゃんと「あいうえお」と表示されましたが。
どなたかご教授をお願いいたします。
オフライン
mac が手元に無いので確認ができないのですが、文字コードの関連だろうと思い検索すると、次のページが見つかりました。参考になればと思います。
http://blog.delta50.net/2009/04/mac-os-x-terminal-ssh.html
オフライン
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 で統一されている」と思っていたのですが...間違っていますか?
オフライン
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 を変更すれば解決するのではないでしょうか。
間違っていましたらご指摘ください。
オフライン
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 にログインしている状態では、日本語の入出力は問題なく行えています。
オフライン
まず、ubuntu 側で保存が成功していますので、やはり、これは mac 側の表示の問題です。両方ともシステム言語が日本語でなく、ある一定の範囲(terminal プロセスなど)に限定されて日本語サポートが適用されています。つまり、mac 側の ssh プロセスには日本語サポートが適用されていません。そこで、ログインした時点(bashプロセスが開始された時点)からすべてのプロセスに適用されるようにすれば・・・という観点から調べましたら、次のようなページがみつかりました。
http://d.hatena.ne.jp/t_mimori/20110212/1297498681
この .bash_profile で LANG を定義していれば、そこから派生する ssh プロセスにも適用されるはずです。
オフライン