首页
学习
活动
专区
圈层
工具
发布

UTF8问题
EN

Stack Overflow用户
提问于 2015-11-20 18:09:56
回答 2查看 480关注 0票数 1

当我运行我的代码:

代码语言:javascript
复制
@a = People.order('created_at DESC').limit(1).pluck(:name)

它会返回给我这个:

代码语言:javascript
复制
"\xD0\x9A\xD0\xB0\xD1\x81\xD0\xBB"

我读到这是UTF8的问题。为了解决这个问题,我做了:

  1. 我的MySQL表在UTF8 utf8_general_ci中
  2. 在application.rb中粘贴: 类应用程序< Rails::Application config.encoding = "utf-8“

但所有这些步骤都帮不了我。在MySQL表中,所有看起来都是正确的,这个问题与俄文字母完全相同。

有什么办法解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2015-11-20 18:51:02

"\xD0\x9A\xD0\xB0\xD1\x81\xD0\xBB"是一个ASCI-8位字符串编码。

它可能是您的控制台的问题,试图显示这段文字。Rails仍然可以在视图中正确地呈现它。如果没有,可以使用.force_encoding("UTF-8")将其转换为utf-8。

代码语言:javascript
复制
"\xD0\x9A\xD0\xB0\xD1\x81\xD0\xBB".force_encoding("UTF-8")
# => "Касл"
票数 1
EN

Stack Overflow用户

发布于 2015-11-20 18:45:19

实际上,字符串值似乎是正确的,如果您解码它,就会有"Касл"。因此,我认为一旦您将它输出到HTML视图中,它就会工作得很好。

同时,您的控制台可能有问题。尝试在控制台中运行puts __ENCODING__,如果它不返回UTF-8,则某些内容配置错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33833331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档