У меня есть проект rails, который отлично работает с MRI 1.9.3. Когда я пытаюсь запустить Rubinius, я получаю эту ошибку в app/views/layouts/application.html.haml
:
"\xC2" в UTF-8 при преобразовании из ASCII-8BIT в UTF-8
У меня есть проект rails, который отлично работает с MRI 1.9.3. Когда я пытаюсь запустить Rubinius, я получаю эту ошибку в app/views/layouts/application.html.haml
:
"\xC2" в UTF-8 при преобразовании из ASCII-8BIT в UTF-8
Оказывается, на странице был недопустимый символ (вставка '·'), что я обнаружил с помощью следующего кода (кредиты этот смысл и этот вопрос):
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
вверху. Я не уверен, почему это не работает с МРТ, но должно, поскольку я не указываю кодировку файла haml.