0

デフォルトのエンコーディングは ISO-8859-1 です

    BufferedReader bis = new BufferedReader(new InputStreamReader(new FileInputStream("file having unicode characters"),"UTF-8"));
    String strTemp = bis.readLine();// on debugging strTemp is having actual unicode data


    System.out.println(strTemp);// uses default encoding which is ISO-8859-1,So not printing   ///actual data


   PrintStream psTemp = new PrintStream(System.out, true, "UTF-8");
   psTemp.println(strTemp);// here i am giving encoding as UTF-8,still not printing unicode data.

PrintStream コンストラクターでエンコーディングを UTF-8 として指定している場合でも、Unicode データを印刷できません。デフォルトのエンコーディングを ISO-8859-1 から UTF-8 に変更すると、機能します。これはなぜですか?

4

2 に答える 2

0

デフォルトのエンコーディングを ISO-8859-1 から UTF-8 に変更すると、機能します。これはなぜですか?

コンソール/シェル/文字を表示しているものにUTF-8文字を期待するように指示しているため、これが機能することを期待しています。デフォルトの動作が ISO-8859-1 を想定している場合、UTF-8 の送信は機能しません。

于 2012-08-23T14:38:07.613 に答える
0

Eclipse コンソールで印刷していますか? またはシェルで?ファイルに出力して結果を確認してください。

たとえば、Windows シェルは「cp850」文字セットに制限されています。この問題は、JVM ではなく、OS シェルが原因である可能性があります。

于 2012-08-23T14:39:45.720 に答える