たとえば,プロジェクトHelloWorldをJava>Java Toolでつくって,ソースを
public class HelloWorld {
public static void main (String args[]) {
System.out.println("こんにちは,世界!");
}
}
という風にしたとき,実行結果が
[Session started at 2007-05-21 13:24:22 +0900.]
????????\201L??\201\213??????\201\361????????
java はステータス 0 で終了しました。
となってしまうのだ.
これは,コンパイラにソースを欧米(Mac OS Roman)というエンコーディングでコンパイルさせているのことと,実行時の標準出力のエンコーディングがShift_JISになっているので起きる問題.(ちなみに,Xcodeの文字コードの実行結果表示のエンコーディングはUTF-8.)
まず,コンパイル時のエンコーディングをUTF-8にする.これは,プロジェクトウィンドウのターゲット>HelloWorldをダブルクリックし,ターゲット:HelloWorldウィンドウの設定>シンプルビュー>Javaコンパイラ設定>ソースファイルのエンコーディングを「Unicode(UTF-8)」にするだけだ.
次に,実行時のエンコーディングをUTF-8にする.これは,プロジェクトウィンドウの実行可能ファイル>javaをダブルクリックし,"実行可能ファイル"Java""の情報ウィンドウの引数>起動時に渡される引数に,+をクリックして,「-Dfile.encoding=UTF-8」を追加し,「-jar "HelloWorld.jar" 」より上にする.(上にしないと,うまく動作しないので注意.)
これで,クリーニングしてから(ソースコードを編集していない場合,リビルドされないから.)ビルドし,実行する.そうすると実行結果が
[Session started at 2007-05-21 13:52:25 +0900.]
こんにちは,世界!
java はステータス 0 で終了しました。
となる.
文字化けすることに悩んでいる人は,これをやってみるといいと思う.
ちなみに,Ant-basedのプロジェクトの場合は,build.xmlをいじれば大丈夫だと思うけど試していない.
0 件のコメント:
コメントを投稿