2

私は以下を試しました:

System.out.println("rājshāhi");
new PrintWriter(new OutputStreamWriter(System.out), true).println("rājshāhi");
new PrintWriter(new OutputStreamWriter(System.out, "UTF-8"), true).println("rājshāhi");
new PrintWriter(new OutputStreamWriter(System.out, "ISO-8859-1"), true).println("rājshāhi");

これにより、次の出力が得られます。

r?jsh?hi
r?jsh?hi
rÄ?jshÄ?hi
r?jsh?hi

だから、私は何が間違っているのですか?

ありがとう。

PS

Windows7でEclipseIndigoを使用しています。出力はEclipse出力コンソールに送られます。

4

5 に答える 5

3

Javaファイルは正しくエンコードされている必要があります。そのファイルのプロパティを調べて、エンコーディングを正しく設定します。

ここに画像の説明を入力してください

于 2012-05-25T13:56:09.193 に答える
2

System.out.println最近のバージョンのEclipseを使用している場合でも、実行した内容は機能するはずです。

以下を見てください。

  • 使用しているEclipseのバージョン
  • ファイルが正しくエンコードされているかどうか。@Matthewの回答を参照してください。そうしないと、Eclipseでファイルを保存できないため、これが当てはまると思います(「サポートされていない文字」を警告します)。
  • コンソールのフォント(Windows -> Preferences -> Fonts -> Default Console Font
  • テキストをファイルに保存すると、文字が正しく取得されるかどうか

ここに画像の説明を入力してください

于 2012-05-25T13:54:57.757 に答える
1

実際、コードをコピーしてコンピューターで実行すると、次の出力が得られました。

rājshāhi
rājshāhi
rājshāhi
r?jsh?hi

最後の行を除いて、すべての行が機能しているようです。システムのデフォルトの文字セットを取得します(この回答を参照)。鉱山はUTF-8です。デフォルトの文字セットを変更することで違いが生じるかどうかを確認してください。

次のいずれかの行で、デフォルトの文字セットが取得されます。

System.out.println(System.getProperty("file.encoding"));
System.out.println(Charset.defaultCharset());

デフォルトのエンコーディングを変更するには、この回答を参照してください。

于 2012-05-25T13:52:23.097 に答える
0

クラスを作成するときは、テキストファイルのエンコーディング値を割り当ててくださいUTF-8。後で他のテキストファイルエンコーディングを使用してクラスを作成すると、Eclipseで反映されない場合でも、エンコーディングスタイルを変更することはできません。したがって、TextFileEncodingを使用して新しいクラスを作成しますUTF 8。これは確実に機能します。

編集:あなたの場合、プログラムでテキストファイルエンコーディングを評価しようとしていますが、コンテナ継承エンコーディング(Cp1252)を使用しているため、影響はありません。

于 2012-05-25T14:10:34.647 に答える
0

最新のEclipseバージョンを使用すると、コンソールでUTF-8エンコーディングを実現できました。LunaバージョンのEclipseを使用し、[プロパティ]->[情報]->[その他]->[UTF-8]を設定しました。

于 2015-08-05T04:46:22.633 に答える