0

我正在尝试从文本文件中读取文本。有一些特殊字符,如 å、ä 和 ö。当我制作一个字符串并打印出该字符串时,我得到了??从这些特殊字符。我正在使用以下代码:

File fileDir = new File("files/myfile.txt");

BufferedReader br = new BufferedReader(new InputStreamReader(
                      new FileInputStream(fileDir), "UTF8"));

String strLine;
while ((strLine = br.readLine()) != null)   {
    System.out.println("strLine: "+strLine);
}

谁能告诉我是什么问题。我希望 strLine 显示并保存 å、ä 和 ö,就像它们在文本文件中一样。提前致谢。

4

2 回答 2

1

在此处查看Java 支持的编码列表

最常见的包含非 ascii 字符的单字节编码是 ISO8859_1;也许你的文件就是这样,你应该为你的 FileInputStream 指定那个编码

于 2012-08-03T18:51:22.277 回答
1

问题可能不在于文件,而在于您尝试打​​印的控制台。我建议你按照以下步骤

  1. 确保您正在阅读的文件以 UTF-8 编码。
  2. 确保您要打印的控制台具有正确的编码/字符集以显示这些字符

最后,这篇文章Unicode - 如何正确获取字符?是必读的。

于 2012-08-03T19:00:29.537 回答