Почему ActiveRecord возвращает поля, закодированные как ASCII-8BIT, даже с гемом mysql2?

Я получаю эту ошибку в Ruby 1.9, Rails 3.0, ActiveRecord 3.0:

incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)

Это происходит из-за строки, для которой я пытаюсь вызвать gsub (которая поступает непосредственно из поля объекта ActiveRecord) имеет кодировку ASCII-8BIT . Я прочитал несколько статей, сообщений и ответов, в которых говорилось, что это вызвано неправильным кодированием mysql gem, и предлагалось mysql2.

Но я уже использую mysql2. Я пробовал версию 0.2.x и последнюю версию 0.3.7, и ни одна из них не решила проблему:

irb> str = Discussion.first.content
=> "Something's wrong with encodings..." 
irb> str.encoding
=> #<Encoding:ASCII-8BIT> 

Я изменил кодировку базы данных и кодировку таблицы в MySQL, я также попытался установить переменную env LANG с помощью не повезло. Можно ли еще где-нибудь посмотреть или узнать, почему я получаю неправильную кодировку?

7
задан mltsy 25 October 2011 в 16:20
поделиться