当我运行代码时:

@a = People.order('created_at DESC').limit(1).pluck(:name)

它告诉我:
"\xD0\x9A\xD0\xB0\xD1\x81\xD0\xBB"

我听说是UTF8发行的。为了解决这个问题我做了:
我的MySQL表是UTF8 UTF8_general_ci格式的
在application.rb I中粘贴:
class Application < Rails::Application
    config.encoding = "utf-8"

但这些步骤对我没有帮助。在MySQL表中,所有的内容看起来都是正确的,这个问题只涉及俄语字母。
有什么办法解决这个问题吗?

最佳答案

"\xD0\x9A\xD0\xB0\xD1\x81\xD0\xBB"是一个ASCII-8BIT字符串编码。
可能是您的控制台试图显示此文本的问题。Rails仍然可以在视图中正确地呈现它。如果不是,可以使用.force_encoding("UTF-8")将其转换为utf-8:

"\xD0\x9A\xD0\xB0\xD1\x81\xD0\xBB".force_encoding("UTF-8")
# => "Касл"

关于mysql - Ruby on Rails UTF8问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33833331/

10-10 01:02