Java 检测zipfiles中的二进制文件和字符编码

Java 检测zipfiles中的二进制文件和字符编码,java,zip,heuristics,zipfile,Java,Zip,Heuristics,Zipfile,当从未知源读取ZipFile(使用Java ZipInputStream或任何其他库)时,是否有任何方法可以检测哪些条目是“字符数据”(如果是编码)或“二进制数据”。以及,如果是二进制的,任何确定更多信息的方法(MIME类型等) 编辑字节顺序标记(BOM)是否出现在zipentries中,如果出现,我们必须对其进行特殊操作 它基本上归结为确定文件内容的启发式方法。例如,对于文本文件(ASCII),应该可以通过检查文件中使用的字节值的范围来做出相当好的猜测——尽管这永远不会是完全不可靠的 您应该尝

当从未知源读取ZipFile(使用Java ZipInputStream或任何其他库)时,是否有任何方法可以检测哪些条目是“字符数据”(如果是编码)或“二进制数据”。以及,如果是二进制的,任何确定更多信息的方法(MIME类型等)


编辑字节顺序标记(BOM)是否出现在zipentries中,如果出现,我们必须对其进行特殊操作

它基本上归结为确定文件内容的启发式方法。例如,对于文本文件(ASCII),应该可以通过检查文件中使用的字节值的范围来做出相当好的猜测——尽管这永远不会是完全不可靠的

您应该尝试限制要识别的文件类型的类别,例如,区分“文本数据”和“二进制数据”是否足够?如果是这样,您应该能够获得相当高的检测成功率


对于UNIX系统,总有一种方法试图根据(主要是)内容识别文件类型。

它基本上归结为确定文件内容的启发式方法。例如,对于文本文件(ASCII),应该可以通过检查文件中使用的字节值的范围来做出相当好的猜测——尽管这永远不会是完全不可靠的

您应该尝试限制要识别的文件类型的类别,例如,区分“文本数据”和“二进制数据”是否足够?如果是这样,您应该能够获得相当高的检测成功率


对于UNIX系统,始终存在尝试根据(大部分)内容识别文件类型的Java组件。

可能实现一个能够应用中定义的规则的Java组件。我很想有那样的东西。(您基本上必须能够查看前x个字节。)

也许可以实现一个能够应用中定义的规则的Java组件。我很想有那样的东西。(基本上,您必须能够查看前x个字节。)