1

単純な問題のように思えますが、フォーラムや Web を検索しても答えが見つかりませんでした。

プログラムを netbeans で実行すると、ä、ö、üなどのすべての特殊文字が正しく表示されます。しかし、同じプロジェクトの「jar」ファイルを実行すると (クリーンと再構築を行いました) 、正しい文字の代わりに@A &$などの奇妙な文字が表示されます。どんな助けでも大歓迎です。

//edited 22. 08. 2012 00:46
解決策はもっと簡単だと思ったので、コードや詳細は投稿しませんでした。わかりました。

//input file is in UTF-8
try {
  BufferedReader in = new BufferedReader(new FileReader("fin.dir"));
  String line;
  while ((line = in.readLine()) != null) {
    processLine(line, 0);
  }
  in.close();
} catch (FileNotFoundException ex) {
  System.out.println(ex.getMessage());
} catch (IOException ex) {
  System.out.println(ex.getMessage());
}

私はこの方法で文字を表示しています:

JOptionPane.showMessageDialog(rootPane, "Correct!\n\n" 
  + testingFin.getWord(), "Congrats", 1);`
4

2 に答える 2

1

の説明からFileReader:

文字ファイルを読み取るための便利なクラス。このクラスのコンストラクターは、既定の文字エンコーディングと既定のバイト バッファー サイズが適切であることを前提としています。これらの値を自分で指定するには、FileInputStream で InputStreamReader を作成します。

Windows を使用している場合、デフォルトのエンコーディングは ISO-8859-1 であるため、Jon がコメントしたように、入力時にエンコーディングの問題が発生しています。これを試して:

in = new BufferedReader(
    new InputStreamReader(new FileInputStream("fin.dir"),"UTF-8"));
于 2012-08-19T19:55:06.017 に答える
0

YOURNETBEANS/etc/netbeans.conf の下に netbeans 設定を追加します。

    -J-Dfile.encoding=UTF-8
于 2012-08-20T03:59:36.340 に答える