Я продолжаю получать Encoding::UndefinedConversionError - "\xC2" from ASCII-8BIT to UTF-8
каждый раз, когда пытаюсь преобразовать хэш в строку JSON. Я пробовал с [.encode | .force_encoding](["UTF-8" | "ASCII-8BIT" ])
, связывал .encode
с .force_encoding
, назад, переключая параметры, но ничего не работало, поэтому я поймал такую ошибку:
begin
menu.to_json
rescue Encoding::UndefinedConversionError
puts $!.error_char.dump
p $!.error_char.encoding
end
Где меню представляет собой продолжение dataset.to_hash с содержимым из базы данных MySQL, кодировка utf8_general_ci и возвращает это:
\xC2
‹#Кодировка:ASCII-8BIT›
Кодировка никогда не меняется, какие бы .encode
/.force_encoding
я ни использовал. Я даже пытался заменить строку .gsub!(/\\\xC2/)
безуспешно.
Любые идеи?
menu.force_encoding("ISO-8859-1").encode("UTF-8")
2. добавьте строку кодировки 'utf-8'` вверху всех ваших файлов .rb. 3. Проверьте настройки среды. что говорит$ echo LC_CTYPE
в вашем терминале? - person Kashyap   schedule 22.10.2012