commit:     bbc8b2a61544af2859276cf8badb53ca3b1244c5
Author:     Alex Legler <alex <AT> a3li <DOT> li>
AuthorDate: Mon Feb 23 20:56:21 2015 +0000
Commit:     Alex Legler <a3li <AT> gentoo <DOT> org>
CommitDate: Mon Feb 23 20:56:21 2015 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/ag.git;a=commit;h=bbc8b2a6

Test (hopefully) faster encoding fix method

---
 lib/utils.rb | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lib/utils.rb b/lib/utils.rb
index aaa04c7..fc4427e 100644
--- a/lib/utils.rb
+++ b/lib/utils.rb
@@ -2,8 +2,15 @@ require 'charlock_holmes'
 
 module Ag
   module Utils
+
     module_function
-    def fix_encoding(str, fail_hard = false)
+    def fix_encoding(str)
+      s = str.encode('UTF-8', 'UTF-8', invalid: :replace, replace: '')
+      s = s.unpack('C*').pack('U*') unless s.valid_encoding?
+      s
+    end
+
+    def fix_encoding_old(str, fail_hard = false)
       detection = CharlockHolmes::EncodingDetector.detect(str)
       CharlockHolmes::Converter.convert(str, detection[:encoding], 'UTF-8')
     rescue => e

Reply via email to