Я хочу портировать приложение rails с Ruby 1.8.7 на 1.9.2.Некоторые файлы содержат умлауты, такие как ä / ö / ü, как в строках, так и в комментариях.Файлы были сохранены как UTF-8, но без BOM (метка порядка байтов) в начале.
Как вы, возможно, знаете, Ruby 1.9 отказывается анализировать эти файлы , что дает invalid multibyte char (US-ASCII)
Я много гуглял и читал, но кажется, что это единственное решениебыть
- вставить спецификацию или
- вставить
# coding: utf-8
в начале каждый файл.
Мой выбранный редактор (gEdit), похоже, не вставляет спецификацию.Я также читал, что наличие спецификации является плохой практикой, поскольку она может нарушить работу некоторых редакторов, а также нарушает работу сценариев оболочки, если вы хотите использовать обозначение shebang.
EDIT : спецификациянарушает синтаксический анализатор Ruby 1.8.7, давая syntax error, unexpected kEND, expecting $end (SyntaxError)
для файла!
Я попытался принудительно использовать внешнюю кодировку с помощью ruby -Eutf-8: utf-8, но, похоже, это игнорируется при вызовеграбли (я пытался: /home/malte/.rvm/gems/ruby-1.9.2-p180/bin/rake test).
Поэтому мой вопрос:
Как строится RVMruby 1.9 в любом случае из источника, есть опция сборки или патч для изменения кодировки по умолчанию с US-ASCII на UTF-8 ?
Я быстро взглянул на исходный код, ноне удалось найти строку, где установлено значение по умолчанию (я не эксперт по Си, круто).