こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaは、SJISとUTF-8のどちらがデフォルトなのでしょうか?

javaは、SJISとUTF-8のどちらがデフォルトなのでしょうか?

現在PCにインストールしているJavaのバージョンは、Version 6 Update 21です。
eclips上のコンソールで実行すると、入力がUTF-8の為、equals()での比較が出来ません。
//---以下サンプルソース--
System.out.println("入力");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String strTmp = br.readLine(); //入力
StringBuffer sb = new StringBuffer();
//入力で、”終了”を入力しても、strTmp.equals("終了")が、TRUEになりません。
while(!strTmp.equals("終了")){
sb.append(strTmp);
strTmp = br.readLine(); //入力
}
//---ここまで---

DOS窓上で、「javac -encoding utf8 sample.java」とやって、テストすると入力もSJISな為、”終了”で終了します。
これは、eclipsの問題ですか? javaのインストール時の設定の問題ですか?
初歩的な質問で、恐縮ですが、どうかご教授下さい。m(_。_)m

投稿日時 - 2010-10-09 10:36:54

QNo.6237564

すぐに回答ほしいです

質問者が選んだベストアンサー

>javac -encoding utf8 sample.java
これはsample.javaがutf8の文字コードで書いてあるってjavaに教えています。
つまりsample.javaソースファイルはutf-8の文字コードなのでしょう。
-encodingを指定しないデフォルトはプラットホームに従うのでWindowsならSJISと解釈されます。
ソースがutf-8なのに-encodingを指定しないでjavacでコンパイルすると全角文字列の解釈がおかしくなってしまいます。
それで、-encodingを指定しない場合には"終了"が正しく認識できないと思われます。
>System.out.println("入力");
この"入力"は読める形式で表示されますか?

投稿日時 - 2010-10-10 17:09:01

補足

アドバイス頂き、ありがとうございます。

はい、確かにソースは、UTF-8です。
だから、-encodingでUTF-8と指定する必要があったのですね。

>>System.out.println("入力");
>この"入力"は読める形式で表示されますか?
はい、DOS画面での実行も、eclipsコンソールでの実行も、読める形式で出力されます。

eclipsは、pleiades-e3.5-php_20090930.zipです。

eclipsでJavaを書く時は、UTF-8じゃ無いのですか?

投稿日時 - 2010-10-10 23:13:51

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問