我使用“FileInputStream”和“FileReader”从包含unicode字符的文件中读取数据。
当我将默认编码设置为“cp-1252”时,两者都在读取垃圾数据,当我将默认编码设置为UTF-8时,两者都正常。
除了以下之外还有什么方法:
BufferedReader fis = new BufferedReader(new InputStreamReader(new FileInputStream("some unicode file"),"UTF-8"));
当默认编码不是UTF-8时正确读取数据。
答案 0 :(得分:1)
FileReader和FileWriter应该弃用恕我直言。 使用
new InputStreamReader(new FileInputStream(file), "UTF-8")
左右。
此处还存在一个没有编码参数的重载版本,使用默认平台编码:System.getProperty("file.encoding")
。