我有一大組MIME文件,其中包含多個部分。許多文件包含標有下列頭部分:如何檢測MIME文件中的純文本?
內容類型:應用程序/八位字節流
內容傳輸編碼:二進制
然而,有時這些部分的內容是某種形式的二進制代碼,有時它們是明文。
在C++,Bash或Ruby中是否有一種巧妙的方法來檢測標記爲application/octet流的MIME部分的內容是二進制數據還是純文本?
感謝, 裏克
我有一大組MIME文件,其中包含多個部分。許多文件包含標有下列頭部分:如何檢測MIME文件中的純文本?
內容類型:應用程序/八位字節流
內容傳輸編碼:二進制
然而,有時這些部分的內容是某種形式的二進制代碼,有時它們是明文。
在C++,Bash或Ruby中是否有一種巧妙的方法來檢測標記爲application/octet流的MIME部分的內容是二進制數據還是純文本?
感謝, 裏克
最簡單的方法是將文件拆分成一組多個文件,每個文件包含一個組成部分。然後我們可以使用grep和其他函數來確定文本格式。
的grep將把二進制文件的文件,而不匹配的-i選項。結合-q選項如果文件是二進制文件,則grep將返回非零退出狀態。
if grep -qI -e '' <file>
then
# plaintext
else
# binary
fi
感謝您的回覆。 – RikSaunderson 2010-09-17 11:27:14
這不是整個文件是二進制文件,而是文件的一部分。我們知道大部分文件都是純文本格式。 mime文件由一些元數據和一些內容部分組成。內容部分具有上面列出的標題,並且有時是純文本,有時是二進制的,有時是HTTP。 – RikSaunderson 2010-09-17 11:28:27