Я получаю эту ошибку в 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 с помощью не повезло. Можно ли еще где-нибудь посмотреть или узнать, почему я получаю неправильную кодировку?