Ungültige byte-Sequenz in UTF-8 (ArgumentError)
Ich versuche zum ausführen eines Ruby-Skripts, und immer eine Fehlermeldung in dieser Zeile:
file_content.gsub(/dr/i,'med')
Wo ich versuche, Sie zu ersetzen "dr" durch "med".
Der Fehler ist:
program.rb:4:in `gsub': invalid byte sequence in UTF-8 (ArgumentError)
Warum das so ist, wie kann ich dieses Problem lösen?
Ich arbeite auf einem MAC-OS-X-Yosemite-Maschine, mit Ruby 2.2.1p85.
- Vom Variablennamen wie es aussieht, Lesen die Daten aus einer Datei – ist das richtig? Wo kommt die Datei her und wie Lesen Sie es? Kennen Sie das tatsächliche Codierung der Datei?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich ist dein string ist nicht im UTF-8-format zu verwenden, so
Siehe "Ruby 2.0.0 String#Match ArgumentError: invalid byte sequence in UTF-8".
file_content
statts
file_content.gsub(/dr/i,'med')
Linie mit meinen code-blockscrub
- Methode. Diese Technik ist wirklich ein workaround für ältere Versionen, die haben nichtscrub
. (Aber eigentlich sollten Sie arbeiten heraus, was die Codierung tatsächlich ist, und konvertieren Sie es richtig, anderenfalls werden Sie Daten verlieren).