Я нашел решение:
Проблема:
Fetching data from any database (Mysql, Postgresql, Sqlite2 & 3), all configured to have UTF-8 as it's character set, returns the data with ASCII-8BIT in ruby 1.9.1 and rails 2.3.2.1.
(Взято из: https://rails.lighthouseapp.com/projects/8994/tickets/2476)
Моя попытка использовать пропатченный адаптер mysql, скорее всего, не удалась, поскольку моя база данных не была настроена на использование utf8, поэтому пропатченный адаптер не работал должным образом.
Исправление закончилось тем, что использовал файл патча, доступный здесь: http://gnuu.org/2009/11/06/ruby19-rails-mysql-utf8/
require 'mysql'
class Mysql::Result
def encode(value, encoding = "utf-8")
String === value ? value.force_encoding(encoding) : value
end
def each_utf8(&block)
each_orig do |row|
yield row.map {|col| encode(col) }
end
end
alias each_orig each
alias each each_utf8
def each_hash_utf8(&block)
each_hash_orig do |row|
row.each {|k, v| row[k] = encode(v) }
yield(row)
end
end
alias each_hash_orig each_hash
alias each_hash each_hash_utf8
end
(помещается в lib / mysql_utf8fix.rb и требуется в enviornment.rb с использованием require 'lib/mysql_utf8fix.rb'
)