繁体   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