Mysql 尝试在Rails中将数据转换为json时,UTF8出现故障

Mysql 尝试在Rails中将数据转换为json时,UTF8出现故障,mysql,ruby-on-rails,Mysql,Ruby On Rails,我已经在MySQL数据库中将编码正确配置为UTF-8。我从数据库接收数据时没有任何问题,然后在控制器中显示数据 def index @languages = Language.all render text: @languages[0].name end Rails使用预期的UTF-8编码正确地返回字符串“ąźaxza”,但当它以json的形式返回数据时,它崩溃了 def index @languages = Language.all render json: @lan

我已经在MySQL数据库中将编码正确配置为UTF-8。我从数据库接收数据时没有任何问题,然后在控制器中显示数据

def index
   @languages = Language.all
   render text: @languages[0].name
end
Rails使用预期的UTF-8编码正确地返回字符串“ąźaxza”,但当它以json的形式返回数据时,它崩溃了

def index
   @languages = Language.all
   render json: @languages
end
它返回带有字符串的json

{"languages":[{"languages":{"id":1,"country":"������a","name":"����axza","domain":null,"code":null,"engine_id":null,"created_at":null,"updated_at":null}}]}
什么是问题?

@语言。检查正在返回

#<ActiveRecord::Relation [#<Language id: 1, country: "\xC4\x85\xC5\x9B\xC5\x82a", name: "\xC4\x85\xC5\xBAaxza", domain: nil, code: nil, engine_id: nil, created_at: nil, updated_at: nil>]> 
character_set_client       utf8
character_set_connection   utf8
character_set_database     utf8
character_set_filesystem   binary
character_set_results      utf8
character_set_server       utf8
character_set_system       utf8
collation_connection    utf8_general_ci
collation_database  utf8_unicode_ci
collation_server    utf8_unicode_ci
正在返回查询“显示变量,如'char%';”

#<ActiveRecord::Relation [#<Language id: 1, country: "\xC4\x85\xC5\x9B\xC5\x82a", name: "\xC4\x85\xC5\xBAaxza", domain: nil, code: nil, engine_id: nil, created_at: nil, updated_at: nil>]> 
character_set_client       utf8
character_set_connection   utf8
character_set_database     utf8
character_set_filesystem   binary
character_set_results      utf8
character_set_server       utf8
character_set_system       utf8
collation_connection    utf8_general_ci
collation_database  utf8_unicode_ci
collation_server    utf8_unicode_ci
并返回查询“show variables like'collation%;”

#<ActiveRecord::Relation [#<Language id: 1, country: "\xC4\x85\xC5\x9B\xC5\x82a", name: "\xC4\x85\xC5\xBAaxza", domain: nil, code: nil, engine_id: nil, created_at: nil, updated_at: nil>]> 
character_set_client       utf8
character_set_connection   utf8
character_set_database     utf8
character_set_filesystem   binary
character_set_results      utf8
character_set_server       utf8
character_set_system       utf8
collation_connection    utf8_general_ci
collation_database  utf8_unicode_ci
collation_server    utf8_unicode_ci

我不得不使用gem mysql2而不是mysql。如果有人有同样的问题,不要忘记在database.yml文件中更改适配器

你说的“它崩溃”是什么意思?到底发生了什么?