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