Sha256: 99818fc7783b6244bde007af5922658d220df04f2b198924d9870b7b7dd2a1f5

Contents?: true

Size: 1.21 KB

Versions: 7

Compression:

Stored size: 1.21 KB

Contents

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


    attr_accessor :string


    ##
    # * *Attributes*  :
    #   - string -> Stringa da elaborare
    def initialize(string)
      self.string = string
    end


    ##
    # Funcione di rimozione del carattere BOM http://en.wikipedia.org/wiki/Byte_order_mark
    # e encoding normale
    def remove_bom
      string_encoder.gsub("\xEF\xBB\xBF".force_encoding("UTF-8"), '')
    end

    ##
    # Funzione di encoding semplice
    def string_encoder
      return self.string if self.string.valid_encoding?
      str = self.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
          logger.debug { "Rescue -> #{e.name}" }
        end
      end

      impossible_encoding

      self.string
    end

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

    end


  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
kono_utils-0.15.11 lib/kono_utils/encoder.rb
kono_utils-0.15.10 lib/kono_utils/encoder.rb
kono_utils-0.15.9 lib/kono_utils/encoder.rb
kono_utils-0.15.8 lib/kono_utils/encoder.rb
kono_utils-0.15.7 lib/kono_utils/encoder.rb
kono_utils-0.15.6 lib/kono_utils/encoder.rb
kono_utils-0.15.5 lib/kono_utils/encoder.rb