I got the error incompatible character encodings: UTF-8 and ASCII-8BIT, when the view found in the database some characters like: ñ, á, é, etc.
My enviroment is:
I can save this characters in the database, using Toad.
I tried to write this, in the first line of my view:
<% # encoding: utf-8 %>
In enviroment.erb
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
But nothing fixed this.
Please, can someone give some adviced to fixed this.
Thanks.
I have the same issues, and I resolved it after hours of searching with a monkey patch.
    module ActiveSupport #:nodoc:
      class SafeBuffer < String
        def safe_concat(value)
          value = force_utf8_encoding(value)
          raise SafeConcatError unless html_safe?
          original_concat(value)
        end
        def concat(value)
          value = force_utf8_encoding(value)
          if !html_safe? || value.html_safe?
            super(value)
          else
            super(ERB::Util.h(value))
          end
        end
        alias << concat
        private
        def force_utf8_encoding(value)
          self.force_encoding('UTF-8').html_safe unless self.encoding.name == 'UTF-8'
          value = (value).force_encoding('UTF-8').html_safe unless value.nil? || value.encoding.name == 'UTF-8'
          value
        end
      end
    end
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With