Ruby `encode ':" \ xC3 "von ASCII-8BIT nach UTF-8 (Encoding :: UndefinedConversionError)
Hannibal-Episoden in tvdb haben seltsame Zeichen in Ihnen.
Beispiel:
Œuf
Also ruby spuckt:
./manifesto.rb:19:in `encode': "\xC3" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
from ./manifesto.rb:19:in `to_json'
from ./manifesto.rb:19:in `<main>'
Zeile 19:
puts @tree.to_json
Ist es ein Weg, um sich mit dieser nicht utf-Zeichen? Ich würde lieber nicht zu ersetzen, aber konvertieren? Oder ignorieren Sie Sie? Ich weiß nicht, jede Hilfe zu schätzen.
Bizarre Teil ist, dass Skript funktioniert per cron. Manuell ausführen, erzeugt es Fehler.
InformationsquelleAutor der Frage | 2014-04-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, Sie sollten eine andere Codierung für das Objekt. Sollten Sie die richtige codepage für die variable
@tree
zum Beispiel mit iso-8859-1 statt ascii-8bit durch die Verwendung@tree.force_encoding('ISO-8859-1')
. DaASCII-8BIT
benutzt Sie nur für binäre Dateien.Zu finden, die externe Codierung für ruby, Ausgabe:
Wenn sudo löst das problem, das problem wurde in Standard-Zeichensatz (Codierung), so, es zu beheben, müssen Sie den richtigen Standard-Zeichensatz (Codierung), indem Sie entweder:
In ruby zu ändern Kodierung, utf-8 oder eine andere ordnungsgemäße, gehen Sie wie folgt vor:
In bash
grep
aktuell gültige eingerichtet:Dann legen Sie Sie in
.bashrc
richtig, in ähnlicher Weise, aber nicht genau mitru_RU
Sprache, wie zum Beispiel die folgenden:InformationsquelleAutor der Antwort Малъ Скрылевъ
Datei.open(yml_file, 'w') sollte sich ändern, um Datei.open(yml_file, 'wb')
InformationsquelleAutor der Antwort unplugandplay
Ich nur erlitt, die durch eine Anzahl von Stunden zu versuchen, zu beheben ein ähnliches problem. Ich hatte überprüft meine locales, Datenbank-Kodierung, alles, was ich denken konnte, und war noch immer ASCII-8-BIT-kodierte Daten aus der Datenbank.
Gut, es stellt sich heraus, dass, wenn Sie speichern Sie text in ein binäres Feld, wird es automatisch wieder als ASCII-8-BIT-codiertem text, das macht Sinn, allerdings kann dies (natürlich) zu Problemen in Ihrer Anwendung.
Kann es behoben werden, indem Sie die Spalte Codierung zurück
:text
in Ihrer Migrationen.InformationsquelleAutor der Antwort Samuel