저는 Ruby 2.4와 Rails 5를 사용하고 있습니다. "content"라는 이름의 variabe에 파일 콘텐츠가 있습니다. 콘텐츠에는 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"을 사용하면 바이너리 데이터가 있는지 알려주는 간단한 방법이 아닙니다. 그런 식으로 존재 하는가? 그렇다면 무엇입니까?
귀하의 요구 사항을 감안할 때, ave는 내용의 약간 분석을한다. 상위 n 바이트를 가져 와서 표준 ASCII 코드와 비교해 보겠습니다. 대다수의 문자가 ASCII가 아닐 경우 콘텐츠가 이진 파일 일 가능성이 높습니다. 카이 제곱 테스트처럼 잘 맞는 것 같습니다. 실제 파일 객체에 액세스 할 수없는 이유는 무엇입니까? – Brennan
파일에 대한 추가 정보가없는 데이터베이스의 콘텐츠에 액세스하고 있습니다. 때로는 파일 이름이 있지만 확장자는 파일/내용 유형을 결정할 때 신뢰할 수 없습니다. – Dave
잠깐, 파일 내용이 DB에 있습니까? – Brennan