Ruby on rails &引用\xC2“;从ASCII-8BIT转换为UTF-8

Ruby on rails &引用\xC2“;从ASCII-8BIT转换为UTF-8,ruby-on-rails,encoding,haml,rubinius,Ruby On Rails,Encoding,Haml,Rubinius,我有一个rails项目,在MRI 1.9.3中运行良好。当我尝试使用Rubinius运行时,我在app/views/layouts/application.html.haml中遇到了这个错误: 从ASCII-8BIT转换为UTF-8时将“\xC2”转换为UTF-8 原来页面有一个无效字符(interpunt“·”),我通过以下代码发现了它(归功于和): 运行此代码后,我可以通过一个简单的git diff找到有问题的字符,并将代码移动到顶部带有#encoding:utf-8的帮助文件中。 我不确定

我有一个rails项目,在MRI 1.9.3中运行良好。当我尝试使用Rubinius运行时,我在
app/views/layouts/application.html.haml
中遇到了这个错误:

从ASCII-8BIT转换为UTF-8时将“\xC2”转换为UTF-8


原来页面有一个无效字符(interpunt“·”),我通过以下代码发现了它(归功于和):

运行此代码后,我可以通过一个简单的
git diff
找到有问题的字符,并将代码移动到顶部带有
#encoding:utf-8
的帮助文件中。 我不确定为什么MRI不会失败,但应该失败,因为我没有指定haml文件的编码

lines = IO.readlines("app/views/layouts/application.html.haml").map do |line|
  line.force_encoding('ASCII-8BIT').encode('UTF-8', :invalid => :replace, :undef => :replace, :replace => '?')
end

File.open("app/views/layouts/application.html.haml", "w") do |file|
  file.puts(lines)
end