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