module Plaintext::CodesetUtil
Public Class Methods
to_utf8(str, encoding)
click to toggle source
# File lib/plaintext/codeset_util.rb, line 5 def self.to_utf8(str, encoding) return str if str.nil? str.force_encoding('ASCII-8BIT') if str.empty? str.force_encoding('UTF-8') return str end enc = (encoding.nil? || encoding.size == 0) ? 'UTF-8' : encoding if enc.upcase != 'UTF-8' str.force_encoding(enc) str = str.encode('UTF-8', invalid: :replace, undef: :replace, replace: '?') else str.force_encoding('UTF-8') if !str.valid_encoding? str = str.encode('US-ASCII', invalid: :replace, undef: :replace, replace: '?').encode('UTF-8') end end str end