Tag: windows 1252

如何使用特定的字符编码读取Java文件?

我试图以UTF-8或Windows-1252的forms读取文件,具体取决于此方法的输出: public Charset getCorrectCharsetToApply() { // Returns a Charset for either UTF-8 or Windows-1252. } 到目前为止,我有: String fileName = getFileNameToReadFromUserInput(); InputStream is = new ByteArrayInputStream(fileName.getBytes()); InputStreamReader isr = new InputStreamReader(is, getCorrectCharsetToApply()); BufferedReader buffReader = new BufferedReader(isr); 我遇到的问题是将BufferedReader实例转换为FileReader 。 此外: 文件本身的名称( fileName )不能被信任为特定的Charset ; 有时文件名将包含UTF-8字符,有时还包含Windows-1252。 文件的内容也是如此(但是,如果文件名和文件内容始终具有匹配的字符集)。 只有getCorrectCharsetToApply()的逻辑可以选择要应用的字符集,因此在调用此方法之前尝试通过其名称读取文件很可能会导致Java尝试使用错误的编码读取文件名…这会导致它死了! 提前致谢!