2009-10-08 42 views
1

從未知源讀取zip文件(使用Java ZipInputStream或任何其他庫)是否有任何檢測哪些條目是「字符數據」(如果是的話)編碼或「二進制」數據」。而且,如果二元,請問ByteOrderMark(BOM)發生在zipentries確定任何詳細信息的任何方式(MIME類型等)檢測zip文件中的二進制文件和字符編碼

編輯如果這樣做,我們必須作出特別行動吧。

回答

1

它基本上歸結爲啓發式確定文件的內容。例如,對於文本文件(ASCII),應該可以通過檢查文件中使用的字節值的範圍來做出相當好的猜測 - 儘管這永遠不會是完全的傻瓜式的。

您應該嘗試限制要識別的文件類型的類別,例如,在「文本數據」和「二進制數據」之間辨別是否足夠?如果是這樣,你應該能夠獲得相當高的檢測成功率。

對於UNIX系統,總是存在file command,它試圖根據(大部分)內容來識別文件類型。

0

也許實現一個能夠應用/usr/share/file/magic中定義的規則的Java組件。我很想擁有類似的東西。 (你基本上必須能夠看到第一個x字節。)