1

似乎是一个简单的问题,但即使在搜索论坛和网络后,我也找不到答案。

当我在 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 回答