我为什么要来?当我尝试从java中的文本文件中读取ä字符时?

时间:2012-08-03 18:45:28

标签: java string bufferedreader inputstreamreader

我正在尝试从文本文件中读取文本。有一些特殊字符,如å,ä和ö。当我创建一个字符串并打印出该字符串然后我得到??从这些特殊的角色。我使用以下代码:

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显示并保存å,ä和ö,因为它们在文本文件中。提前谢谢。

2 个答案:

答案 0 :(得分:1)

检查here for the lists of Java supported encodings

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

答案 1 :(得分:1)

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

  1. 确保您正在阅读的文件采用UTF-8编码。
  2. 确保要打印的控制台具有正确的编码/字符集以显示这些字符
  3. 最后,必须阅读本文Unicode - How to get characters right?