From f2957b126ea673bc0f1c3b39dfdf17601cd1c8b2 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 3 Oct 2014 19:45:42 +1000 Subject: [PATCH] add more diagnostics to encoding issues --- lib/freedom_patches/safe_buffer.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/freedom_patches/safe_buffer.rb b/lib/freedom_patches/safe_buffer.rb index ea01a9821a..c28f624777 100644 --- a/lib/freedom_patches/safe_buffer.rb +++ b/lib/freedom_patches/safe_buffer.rb @@ -15,18 +15,20 @@ class ActiveSupport::SafeBuffer raise else + encoding_diags = "internal encoding #{Encoding.default_internal}, external encoding #{Encoding.default_external}" + unless encoding == Encoding::UTF_8 self.force_encoding("UTF-8") unless valid_encoding? encode!("utf-16","utf-8",:invalid => :replace) encode!("utf-8","utf-16") end - Rails.logger.warn("Encountered a non UTF-8 string in SafeBuffer - #{self}") + Rails.logger.warn("Encountered a non UTF-8 string in SafeBuffer - #{self} - #{encoding_diags}") end unless value.encoding == Encoding::UTF_8 value = value.dup.force_encoding("UTF-8").scrub - Rails.logger.warn("Attempted to concat a non UTF-8 string in SafeBuffer - #{value}") + Rails.logger.warn("Attempted to concat a non UTF-8 string in SafeBuffer - #{value} - #{encoding_diags}") end concat(value,_raise=true)