簡體   English   中英

如何確定文件是二進制文件還是文本文件?

[英]How can i determine if a file is binary or text?

我正在編寫一個應用程序,我需要確定用戶提供的文件是否為文本,因為我正在其中進行搜索。

我不是基於擴展名的,因為我也想搜索例如源代碼文件或具有文本內容的任何其他文件(即使不知名的擴展名)。

有沒有辦法確定文件是否為文本?

感謝大家提供的解決方案! 我只是找到了一個看起來做得很好的框架!

我在這里留下了一個參考鏈接: https : //github.com/aidansteele/MagicKit

沒有辦法確定。 但是請注意,大多數控制字符不會出現在ASCII文件中。 您可以通過對大多數ASCII控制字符進行子集化來做出很好的猜測。 然后計算子集中文件中的字符數,對於ASCII文件,該計數應為零。 但是,歸根結底,您必須證明是否定的,這是一件麻煩的事。

您將需要打開並讀取數據。

對於ASCII文本文件,這意味着檢查字符是否在可打印范圍內。

對於UTF文本文件,在讀取文件的其余部分之前,可能需要先閱讀BOM(字節順序標記)以確定編碼。

在此處閱讀更多信息: http : //en.wikipedia.org/wiki/Text_file

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM