【问题标题】:How do I detect plaintext in a MIME file?如何检测 MIME 文件中的纯文本?
【发布时间】:2011-04-13 15:46:58
【问题描述】:

我有大量的 MIME 文件,其中包含多个部分。许多文件包含标有以下标题的部分:

Content-Type:应用程序/八位字节流

内容传输编码:二进制

但是,有时这些部分的内容是某种形式的二进制代码,有时它们是明文。

在 C++、Bash 或 Ruby 中是否有一种聪明的方法来检测标记为 application/octet 流的 MIME 部分的内容是二进制数据还是纯文本?

【问题讨论】:

    标签: c++ ruby bash content-type mime


    【解决方案1】:

    grep 的 -I 选项会将二进制文件视为没有匹配项的文件。如果文件是二进制文件,结合 -q 选项 grep 将返回非零退出状态。

    if grep -qI -e '' <file>
    then
            # plaintext
    else
            # binary
    fi
    

    【讨论】:

    • 不是整个文件是二进制文件,而是文件的一部分。我们知道大部分文件都是纯文本格式的。 mime 文件由一些元数据和一些内容部分组成。内容部分具有上面列出的标头,有时是纯文本,有时是二进制文件,有时是 HTTP。
    【解决方案2】:

    最简单的方法是将文件拆分为一组多个文件,每个文件都包含一个组成部分。然后我们可以使用 grep 和其他函数来确定文本格式。

    【讨论】:

      猜你喜欢
      • 2012-05-17
      • 2021-12-30
      • 2011-07-25
      • 2014-03-24
      • 2012-12-26
      • 2015-12-11
      • 2013-02-17
      • 2012-04-09
      • 1970-01-01
      相关资源
      最近更新 更多