Otrzymuję zawsze Encoding::UndefinedConversionError - "\xC2" from ASCII-8BIT to UTF-8
za każdym razem, gdy próbuję przekonwertować skrót na ciąg JSON. Próbowałem z [.encode | .force_encoding](["UTF-8" | "ASCII-8BIT" ])
, łańcuchowym .encode
z .force_encoding
, do tyłu, przełączanie parametrów, ale nic nie wydawało się do pracy, więc złapałem błędu takiego:Kodowanie :: UndefinedConversionError
begin
menu.to_json
rescue Encoding::UndefinedConversionError
puts $!.error_char.dump
p $!.error_char.encoding
end
Gdzie menu jest dataset.to_hash sequel za treści z MySQL DB, utf8_general_ci kodowanie i wrócił to:
"\ xC2"
< #Encoding: ASCII-8BIT>
Kodowanie nigdy się nie zmienia, niezależnie od używanego urządzenia. Próbowałem nawet zastąpić ciąg .gsub!(/\\\xC2/)
bez powodzenia.
Wszelkie pomysły?
1. Czy próbowałeś tego? 'menu.force_encoding (" ISO-8859-1 ") .okodować (" UTF-8 ")' 2. dodać "# encoding" utf-8'' string na górze wszystkich plików .rb. 3 Sprawdź ustawienia środowiska, co mówi '$ echo LC_CTYPE' w twoim terminalu? – Kashyap
Czy krok 1 zakończył się błędem? Czy wykonano krok 2? Dla kroku 3, http://thegreyblog.blogspot.in/2012/02/ Naprawianie-mac-os-x-lions-ssh-utf-8-issues.html ten link ma ustawienia env, które twój program musi uruchamiać z incase, którego chcesz uniknąć problemu – Kashyap