2016-02-01 3 views
13

Hatte ein Entwickler diese Methode schreiben und verursacht eine Encoding :: UndefinedConversionError ("\ xE2" von ASCII -8BIT zu UTF-8): Fehler.Encoding :: UndefinedConversionError (" xE2" von ASCII-8BIT nach UTF-8): Fehler in ROR + MongoDB based app

Dieser Fehler tritt nur zufällig auf, so dass die eingehenden Daten das ursprüngliche DB-Feld sind, was das Problem verursacht. Aber da ich keine Kontrolle darüber habe, was kann ich in die unten stehende Methode setzen, um das zu beheben, so dass schlechte Daten keine Probleme verursachen?

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

Funktioniert das?

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

die ganze Backtrace des Fehlers Bitte senden. –

Antwort

Verwandte Themen