2016-02-01 4 views
13

Uno sviluppatore ha scritto questo metodo e causando un Encoding :: UndefinedConversionError ("\ xE2" da ASCII Da -8BIT a UTF-8): errore.Encoding :: UndefinedConversionError (" xE2" da ASCII-8BIT a UTF-8): errore nell'app basata su ROR + MongoDB

Questo errore si verifica solo in modo casuale, quindi i dati in entrata sono originali nel campo DB è ciò che sta causando il problema. Ma dal momento che non ho alcun controllo su questo, cosa posso mettere nel seguente metodo per risolvere questo problema dati così cattivi non causano problemi?

def scrub_string(input, line_break = ' ') 
    begin 
    input.an_address.delete("^\u{0000}-\u{007F}").gsub("\n", line_break) 
    rescue 
    input || '' 
    end 
end 

Questo lavoro funzionerà?

input = input.encode('utf-8', :invalid => :replace, :undef => :replace, :replace => '_') 
+0

si prega di inviare l'intero backtrace dell'errore. –

risposta

Problemi correlati