У меня есть проект направляющих с большим количеством кириллических строк в нем.
Это хорошо работало на Ruby 1.8, но Ruby 1.9 предполагает, что исходные файлы ЗАКОДИРОВАНЫ US-ASCII, если Вы не обеспечиваете # encoding: utf-8
комментарий во главе исходного файла. В той точке не рассматривают файлы US-ASCII
.
Есть ли более простой способ сказать, что Ruby "Это приложение UTF8-кодируется. Рассмотрите все и какие-либо включенные исходные файлы как UTF8, если не объявлено иначе"?
ОБНОВЛЕНИЕ:
Я записал, "Как вставить кодирование: директива UTF-8 автоматически в файлах Ruby 1.9", который добавляет директиву кодирования автоматически, если она необходима.
Явное лучше, чем неявное. Написание имени кодировки полезно для вашего текстового редактора, вашего интерпретатора и всех, кто хочет просмотреть файл. На разных платформах используются разные значения по умолчанию - UTF-8, Windows-1252, Windows-1251 и т. Д. - и вы можете затруднить переносимость или интеграцию платформы, если автоматически выберете одно вместо другого. Требовать более явного кодирования - это хорошо.
Было бы неплохо интегрировать ваше приложение Rails с GetText. Тогда все ваши строки UTF-8 будут изолированы от небольшого количества файлов перевода, и ваши модули Ruby будут чистыми ASCII.
Я думаю, вы можете либо
-E utf-8
аргумент командной строки для ruby
], либо ] Переменная окружения RUBYOPT
в "- E utf-8"
Я не часто с этим сталкиваюсь, но когда мне нужно обеспечить UTF-8, я использую глобальный параметр $KCODE. Попробуйте поместить это в свой environment.rb: $KCODE = 'UTF8'
Также, вы уверены, что ваш редактор сохраняет файлы в UTF-8?