gpt4 book ai didi

java - 如何检测文件是否不是utf-8编码?

转载 作者:行者123 更新时间:2023-11-30 05:56:46 26 4
gpt4 key购买 nike

在Java中,如何测试一个文件的编码肯定不是utf-8?

我希望能够验证内容是否格式良好的 utf-8。

此外,还需要验证文件是否不以字节顺序标记(BOM)开头。

最佳答案

如果您只需要测试文件,而不实际保留其内容:

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.");
}
  • 如果未提供字符集,Files.newBufferedReader 始终使用 UTF-8。
  • 0xfeff 是字节顺序标记代码点。
  • reader.transferTo(Writer.nullWriter())(从 Java 11 开始提供)处理文件并立即丢弃它。

关于java - 如何检测文件是否不是utf-8编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53035196/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com