terminal の文字化け。
terminal で、
ls documents
とした時や、
javac
とした時の文字化けの解決方法が、ございましたら、どなたかお教えください。
terminal で、
ls documents
とした時や、
javac
とした時の文字化けの解決方法が、ございましたら、どなたかお教えください。
ls は、
ls -v とすることで、解決することが分かりました。
javac については分かりません。
ウインドウ設定>ディスプレイ>文字セットエンコーディング
Unicode(UTF-8) :ファイル名が正しく表示される。 ls -v 用
日本語MacOS:ファイル内容が正しく表示される。 javac 用
両立はできないので,ケースによって使い分ける。 Mac OS X では,ファイル名はユニコード,データはMacOS(=Shift JIS)がデフォルトになっています。
詳細にご指導、ありがとうございました。
補足です:
システムが吐き出すログなどは Unicode(UTF-8) です。
#どうもまだ混迷期にあるようですね。コードの問題は難しいです。小生は,仕事柄,Windows(=Shift-JIS) , UNIX(=EUC) サーバにターミナルでリモートログインすることが多いのですが,相手先にあわせて,文字コードを切り替えて使用しています。(まあ,ファイルを調べるターミナルと内容をみるターミナルの2枚を起動して,それぞれ文字コードを最適にして使えばいいわけですが。。。)
みなさんすでにやられていたらご容赦。
/Users/(your account)/Library/Application Support/Terminal
下に、それぞれの接続用にカスタマイズした .term ファイルを作成しておくと、
ファイル/ライブラリ
メニューから選択するだけでそれぞれの設定のウィンドウが開くので便利ですよ。
補足、ありがとうございます。
同じバージョンのターミナルを2つ起動できるのですか?
すみません。
内容が高度で、よく分からないのですが?
もし、よろしかったら初心者にも分かるようにお教えしてもらえないでしょうか?
ターミナル起動状態でヘルプを起動して、
termファイル
で照会すると、お望みの情報が分かりやすく書かれています。
ブラウザと同じですよ。Safari は一本起動しますが,新規ウインドウで,画面はいくらでも開けられますよね。ターミナルも同じです。ターミナルメニュー>ファイル>新規シェル(コマンド+N)で,何枚でもターミナル画面はだせます。各画面は別々のシェルとして独立していますので,それぞれ個別の設定が可能です。
ですから,この起動用シェルを設定ファイルとして保存しておき,これを読み込んでシェルを開くと,個別の設定で利用できるというわけです。もちろんその都度設定してもいいわけです。(小生は体裁をあわせていますので,文字コードの変更は手動でやっています。)
#画面を開けるので,ターミナル(で窓=Window)を切るという表現になるのです。アプリは一本だけ起動していますが,ターミナル窓は複数処理できるということです。
* 詳しくは,ターミナルのヘルプを一読してください。
そんなみじかな、ヘルプに書かれているとは。。。
どうも、すみません。勉強不足です。
ありがとうございました。
こんなことまで、ヘルプに書かれているとは、思いもしませんでした。
ヘルプを読みます。
どうも、ありがとうございました。
こんにちは
私もこのディスカッションでいろんな方から教わった事なので,
この質問が出たついでにお礼かたがたまとめるつもりで投稿します。
実はいろいろ話しを聞くと自分のようにしている方は少数のようです。
(大体はJAVAはshift_jis環境にされてるようですが)
でもOSXの文字コードが標準の環境で(ようはUTF-8),
普通にjavac,javaコマンドが使えますので,もし興味があったら
試してみて下さい。
(ls -vとも両立します。OSXで普通にJavaが組めるという
満足感があります。本当は文字コードの混乱が解決し,何も
しなくてもjavac,javaでうまくできるようになるといいのですが。
文字セットエンコーディングを切り替えるのは面倒です。)
http://www.fan.gr.jp/〜sakai/jx.html
よりnkfをダウンロード,インストールする。
(nkfとはUNIXの世界では有名な文字コードを変換するソフトです。
jx-20031115.dmg.gzだとその他のソフトも一式全部インストールされる)
パスを通す。
tcshをお使いなら
echo 'set path = ($path /usr/local/bin)' >> 〜/.tcshrc
bashをお使いなら
echo 'export PATH=${PATH}:/usr/local/bin' >> 〜/.bash_profile
.tcshrcか.bash_profileに直接 ' ' 内を書き込んでもいいです。
(.tcshrcや.bash_profileがなければ自分で作る)
.tcshrcならそれに以下の2行を追加する。
alias javac 'javac \!* |& nkf -w'
alias java 'java \!* |& nkf -w'
.bash_profileならそれに以下の8行を追加する。
javac ()
{
/usr/bin/javac $@ 2>&1 | nkf -w
}
java ()
{
/usr/bin/java $@ 2>&1 | nkf -w
}
terminalを再起動して,
これらの設定で普通の感覚でjavac,javaが使えます。
-wはnkfに文字コードを渡してUTF-8に変換しろという
オプションです。
すみません。本当は教えられる立場でもないので,
もし,トラブルがあってもうまく助言できるかどうか
わかりません。(多分おかしくなることはないと思いますが)
こういう方法もあるということで,書かせて頂きました。
詳細にありがとうございます。
何か、気分がすっきりしました。
方法はあるのですね。
自分は初心者なので、一行一行調べながら理解したいと思います。
Pantherにはiconvが入りますから(BSDサブシステムのチェックを外していなければ)、そのためにnkfをインストールする必要もあまり...。
うちの環境だと、javacで「???」ばかりで一向に文字化けらしき表示にならなくて「なんでだろう?」と疑問に思ってたんですが、環境変数の「__CF_USER_TEXT_ENCODING」を参照してたんですね。英語環境でログインしてて日本語メッセージ出したい時はこれを設定し直さないといけない、と。
とりあえず「setenv __CF_USER_TEXT_ENCODING 0x1F5:1:14」「setenv LC_ALL ja」で設定して、「javac |& iconv -f sjis -t utf-8」で日本語で出ました。(0x1F5って何を意味するんだろ?)
terminal の文字化け。