不兼容的字符编码:ASCII-8bit UTF-8

时间:2017-11-23 18:39:23

标签: ruby-on-rails ruby encoding utf-8 character-encoding

我一直在努力解决这个问题,而我在SO上看到的其他答案还没有解决它。

只要用户的名称中包含重音,我的视图.html.erb就会出现错误,例如è名称中的任何位置:

console.log(<%= raw current_user.as_json({:include => :roles, :safe => true})%>);

从我所看到的情况来看,当返回current_user.as_json时,所有密钥的编码值都为US-ASCII,并且存在的密钥字符串为UTF-8。如果我通过将其转换为字符串来检查其他值的编码,则它们也是US-ASCII

似乎当包含角色时,所有密钥都是UTF-8,如果我to_s的值是US-ASCII,那么这会是我的某种配置错误吗?

我所做的改变/我尝试的事情:

  • 我将# encoding: UTF-8放在游戏中rb个文件的顶部。
  • 我的database.yml正在使用mysql2,其编码设置为utf8mb4
  • application.ymlconfig.encoding = "utf-8"
  • 内部和外部编码都设置为Encoding::UTF_8
  • 中的environment.rb
  • 执行相同操作时,rails控制台不会出现问题

我假设在将哈希转换为视图中的JSON对象时存在某种问题,但我似乎无法弄清楚该问题是什么。

我正在使用Rails 4.2.9和ruby 2.3.3

0 个答案:

没有答案