module ForceUtf8::Encode

Public Instance Methods

encode(string) click to toggle source
# File lib/force_utf8/encode.rb, line 3
def encode(string)
  return unless string
  string = string.dup
  encode!(string)
  string
end
encode!(string) click to toggle source
# File lib/force_utf8/encode.rb, line 10
def encode!(string)
  return unless string

  string.force_encoding("UTF-8")

  unless string.valid_encoding?
    new_chars = string.chars.map { |c| c.valid_encoding? ? c : '?' }.join
    string.replace(new_chars)
  end
end