在Java中,如何测试文件的编码绝对不是utf-8?
我希望能够验证内容是否格式正确utf-8。
此外,还需要验证文件不是以字节顺序标记(BOM)开头。
答案 0 :(得分:1)
如果您只需要测试文件而不实际保留其内容:
Path path = Paths.get("/home/dave/somefile.txt");
try (Reader reader = Files.newBufferedReader(path)) {
int c = reader.read();
if (c == 0xfeff) {
System.out.println("File starts with a byte order mark.");
} else if (c >= 0) {
reader.transferTo(Writer.nullWriter());
}
} catch (CharacterCodingException e) {
System.out.println("Not a UTF-8 file.");
}