2009-10-08 80 views
1

从未知源读取zip文件(使用Java ZipInputStream或任何其他库)是否有任何检测哪些条目是“字符数据”(如果是的话)编码或“二进制”数据”。而且,如果二元,请问ByteOrderMark(BOM)发生在zipentries确定任何详细信息的任何方式(MIME类型等)检测zip文件中的二进制文件和字符编码

编辑如果这样做,我们必须作出特别行动吧。

回答

1

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

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

对于UNIX系统,总是存在file command,它试图根据(大部分)内容来识别文件类型。

0

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

相关问题