我有一个使用MRI 1.9.3运行良好的导轨项目。当我尝试使用Rubinius运行时,我在app/views/layouts/application.html.haml
:
“\ xC2”到UTF-8,从ASCII-8BIT转换为UTF-8
答案 0 :(得分:9)
事实证明该页面有一个无效字符(一个符号'·'),我用下面的代码(this gist和this question的信用)发现:
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
运行此代码后,我可以使用简单的git diff
找到有问题的字符,并将代码移到顶部带有# encoding: utf-8
的帮助文件中。
我不确定为什么这不会因MRI而失败,但它应该因为我没有指定haml文件的编码。