From 71b922b444fcf16d565c664e7e570699af545b66 Mon Sep 17 00:00:00 2001 From: Kouhei Sutou Date: Sun, 10 Aug 2014 21:21:03 +0900 Subject: [PATCH] Improve binary file detection We can use `String#valid_encoding?` for detecting an undefined or invalid character. --- lib/file_reverse_reader.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/file_reverse_reader.rb b/lib/file_reverse_reader.rb index a5f1312..ba95cba 100644 --- a/lib/file_reverse_reader.rb +++ b/lib/file_reverse_reader.rb @@ -36,8 +36,7 @@ class FileReverseReader def binary_file? sample = io.read(1024) || "" - sample2 = sample.force_encoding('ascii-8bit').encode('us-ascii', :undef => :replace, :invalid => :replace, :replace => "") - sample != sample2 # maybe binary file + !sample.force_encoding('us-ascii').valid_encoding? ensure io.rewind end