我正在使用“FileInputStream”和“FileReader”从包含 unicode 字符的文件中读取数据。
当我将默认编码设置为“cp-1252”时,两者都在读取垃圾数据,当我将默认编码设置为 UTF-8 时,两者都读取正常。
- 这两个都使用系统默认编码来读取数据是真的吗?
- 那么如果它依赖于系统编码,那么使用字符流的好处是什么。
除了:
BufferedReader fis = new BufferedReader(new InputStreamReader(new FileInputStream("some unicode file"),"UTF-8"));
在默认编码不是 UTF-8 时正确读取数据。