我正在使用Ruby 2.4和Rails 5.我在名爲「content」的變量中有文件內容。內容可能包含來自PDF文件,Word文件或HTML文件之類的數據。有什麼辦法可以告訴變量是否包含二進制數據?最終,我想知道這是一個PDf,Microsoft Office還是其他類型的OpenOffice文件。這個答案 - Rails: possible to check if a string is binary? - 表明,我可以檢查的變量有沒有辦法來檢查一個Ruby變量是否包含二進制數據?
content.encoding
編碼,它會在二進制數據的情況下產生
ASCII-8BIT
,但是,我注意到有存儲在變量中的HTML內容也可能返回「ASCII-8BIT」作爲content.encoding的情況,所以使用「content.encoding」並不是一種簡單的方法告訴我是否有二進制數據。這種方式是否存在?如果是這樣,它是什麼?
鑑於您的要求,它看起來像你會h大家對內容做一些分析。我會拉最高的n個字節,並根據您的標準ASCII碼檢查它們。如果您遇到的許多字符不是ASCII,則很可能您的內容是二進制文件。看起來像卡方測試可能是一個很好的選擇。爲什麼你不能訪問實際的文件對象? – Brennan
我正在訪問數據庫中沒有關於該文件的其他信息的內容。有時候會有文件名,但擴展名對於確定文件/內容類型是不可靠的。 – Dave
等等,文件的內容在DB中? – Brennan