1

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

编辑ByteOrderMark (BOM) 是否出现在 zipentries 中,如果是这样,我们必须对其进行特殊操作。

4

2 回答 2

1

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

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

对于 UNIX 系统,总是有file 命令尝试根据(主要)内容来识别文件类型。

于 2009-10-08T09:46:03.163 回答
0

也许实现一个能够应用/usr/share/file/magic中定义的规则的 Java 组件。我很想拥有这样的东西。(您基本上必须能够查看前 x 个字节。)

于 2009-10-10T18:53:50.727 回答