def clear_string(str, opts={})
      options = {:encoding=>'UTF8'}.merge opts  # default option :encoding=>'UTF8'
      str=str.chars.map { |c| (c.bytes[0] <= 127) ? c : translation_hash[c] }.join if options[:encoding]=='ASCII'
      str.gsub(/[\s\302\240]+/mu," ").strip # el caracter UTF8 "\302\240" correspon al &nbsp; de HTML
    end
def clear_string(str, opts={})
      options = {:encoding=>'UTF8'}.merge opts  # default option :encoding=>'UTF8'
      str=str.chars.map { |c| (c.bytes[0] <= 127) ? c : translation_hash[c] }.join if options[:encoding]=='ASCII'
      str.gsub(/[\s\302\240]+/mu," ").strip # el caracter UTF8 "\302\240" correspon al &nbsp; de HTML
    end
treu els espais innecessaris i codis HTML d'enmig i extrems a un string
 neteja l'string eliminant tots els no printables dels extrems i els
 d'enmig els substitueiux per un unic espai.
 Les opcions +opts+ poden ser:
   +:encoding+ => "ASCII" | "UTF8" (default)
     "ASCII" converteix tots els caracters al mes semblant ASCII (amb Iconv)
     "UTF8" torna una cadena UTF8
 (based on an idea of Obie Fernandez http://www.jroller.com/obie/tags/unicode)