Friday 20 September 2013

Rails 4: Patch JSON encoding to support emojis

Add this to file under `config/initializers/`

module ActiveSupport::JSON::Encoding
  class << self
    def escape(string)
      if string.ascii_only?
        string = string.encode(::Encoding::UTF_8, :undef => :replace).force_encoding(::Encoding::BINARY)
      end
      json = string.gsub(escape_regex) { |s| ESCAPED_CHARS[s] }
      json = %("#{json}")
      json.force_encoding(::Encoding::UTF_8) if json.ascii_only?
      json
    end
  end
end

1 comment: