Mysql 尝试在Rails中将数据转换为json时,UTF8出现故障
我已经在MySQL数据库中将编码正确配置为UTF-8。我从数据库接收数据时没有任何问题,然后在控制器中显示数据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
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文件中更改适配器 你说的“它崩溃”是什么意思?到底发生了什么?