我正在尝试从文本文件中读取文本。有一些特殊字符,如å,ä和ö。当我创建一个字符串并打印出该字符串然后我得到??从这些特殊的角色。我使用以下代码:
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显示并保存å,ä和ö,因为它们在文本文件中。提前谢谢。
答案 0 :(得分:1)
检查here for the lists of Java supported encodings
包含非ascii字符的最常见单字节编码是ISO8859_1;也许你的文件就是那个,你应该为你的FileInputStream指定编码
答案 1 :(得分:1)
问题可能不在于文件,而在于您尝试打印的控制台。我建议你按照以下步骤进行操作
最后,必须阅读本文Unicode - How to get characters right?。