class KonoUtils::Encoder

Classe che si occupa di decodificare una qualsiasi stringa in formato utf8, cercando di trovare l'encoding iniziale a tentativi.

Attributes

string[RW]

Public Class Methods

new(string) click to toggle source
  • Attributes :

    • string -> Stringa da elaborare

# File lib/kono_utils/encoder.rb, line 11
def initialize(string)
  self.string = string
end

Public Instance Methods

impossible_encoding() click to toggle source

Metodo placeholder, volendo si può estendere la funzione e sovrascrivere questa funzione per essere notificati in caso di mancata decodifica

# File lib/kono_utils/encoder.rb, line 45
def impossible_encoding; end
remove_bom() click to toggle source

Funcione di rimozione del carattere BOM en.wikipedia.org/wiki/Byte_order_mark e encoding normale

# File lib/kono_utils/encoder.rb, line 18
def remove_bom
  string_encoder.gsub("\xEF\xBB\xBF".force_encoding('UTF-8'), '')
end
string_encoder() click to toggle source

Funzione di encoding semplice

# File lib/kono_utils/encoder.rb, line 24
def string_encoder
  return string if string.valid_encoding?
  str = string
  Encoding.list.each do |e|
    begin
      str.force_encoding(e.name)
      tmp_string = str.encode('UTF-8')
      return tmp_string if tmp_string.valid_encoding?
    rescue
      Rails.logger.debug { "Rescue -> #{e.name}" } if defined?(::Rails)
    end
  end

  impossible_encoding

  string
end