Codierung :: UndefinedConversionError

Ich immer eine Encoding::UndefinedConversionError - "\xC2" from ASCII-8BIT to UTF-8 jedes mal, wenn ich versuchen zu konvertieren, einen hash in einen JSON-string. Ich habe versucht, mit [.encode | .force_encoding](["UTF-8" | "ASCII-8BIT" ]), Verkettung .encode mit .force_encoding hinten, Schalt-Parameter, aber nichts schien zu funktionieren so dass ich den Fehler erwischt, wie diese:

begin
  menu.to_json
rescue Encoding::UndefinedConversionError
  puts $!.error_char.dump
  p $!.error_char.encoding
end

Wo Menü ist eine Fortsetzung der dataset.to_hash mit Inhalten aus einer MySQL-DB, utf8_general_ci Kodierung und kehrte diese:

"\xC2"

<#Kodierung:ASCII-8BIT>

Die Codierung ändert sich nie, egal, was .encode/.force_encoding ich verwenden. Ich habe sogar versucht, ersetzen Sie die Zeichenfolge .gsub!(/\\\xC2/) ohne Glück.

Irgendwelche Ideen?

Kommentar zu dem Problem
1.Hast du das probiert? - Menü.force_encoding("ISO-8859-1").encode("UTF-8") 2. fügen Sie ein "# encoding "utf-8" saite an der Spitze der alle Ihre .rb-Dateien. 3. Überprüfen Sie Ihre Umgebung. was bedeutet $ echo LC_CTYPE in dein terminal sagen? Kommentarautor: Kashyap
Hat Schritt 1 ein Fehler? Haben Schritt 2 arbeiten? Für Schritt 3, thegreyblog.blogspot.in/2012/02/... dieser link hat den env-Einstellungen, die das Programm ausführen muss, mit incase, die Sie wollen, um das Problem zu vermeiden. Kommentarautor: Kashyap

InformationsquelleAutor der Frage martriay | 2012-10-21

Schreibe einen Kommentar