2010-09-17 72 views
1

我有一大組MIME文件,其中包含多個部分。許多文件包含標有下列頭部分:如何檢測MIME文件中的純文本?

內容類型:應用程序/八位字節流

內容傳輸編碼:二進制

然而,有時這些部分的內容是某種形式的二進制代碼,有時它們是明文。

在C++,Bash或Ruby中是否有一種巧妙的方法來檢測標記爲application/octet流的MIME部分的內容是二進制數據還是純文本?

感謝, 裏克

回答

0

最簡單的方法是將文件拆分成一組多個文件,每個文件包含一個組成部分。然後我們可以使用grep和其他函數來確定文本格式。

1

的grep將把二進制文件的文件,而不匹配的-i選項。結合-q選項如果文件是二進制文件,則grep將返回非零退出狀態。

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

感謝您的回覆。 – RikSaunderson 2010-09-17 11:27:14

+0

這不是整個文件是二進制文件,而是文件的一部分。我們知道大部分文件都是純文本格式。 mime文件由一些元數據和一些內容部分組成。內容部分具有上面列出的標題,並且有時是純文本,有時是二進制的,有時是HTTP。 – RikSaunderson 2010-09-17 11:28:27