I zostały otrzymuję ten błąd w Ruby 1.9 Rails 3.0, 3.0 ActiveRecord:Dlaczego ActiveRecord zwraca pola zakodowane jako ASCII-8BIT nawet z klejnotem mysql2?
incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)
Dzieje się tak dlatego, że łańcuch, na którym próbuję zadzwonić gsub
(która pochodzi bezpośrednio od obiektu pola ActiveRecord) ma kodowanie ASCII-8BIT
. Czytałem kilka artykułów, wpisów i odpowiedzi, mówiących, że jest to spowodowane błędem mysql kodującym rzeczy i sugerowaniem mysql2.
Ale używam już mysql2. Próbowałem w wersji 0.2.x oraz najnowszej wersji 0.3.7 i nie rozwiązuje problemu:
irb> str = Discussion.first.content
=> "Something's wrong with encodings..."
irb> str.encoding
=> #<Encoding:ASCII-8BIT>
Zmieniłem kodowanie bazy danych i kodowanie tabel w MySQL, ja też próbowałem ustawienie Zmienna LANG env bez powodzenia. Czy jest gdziekolwiek indziej mogę wyglądać lub zobaczyć, dlaczego otrzymuję błędne kodowanie?
Oto kolejny fragment informacji: \ _ \ _ ENCODING \ _ \ _, Encoding.default_external i Encoding.default_internal wszystko zwróciło UTF-8 – mltsy