Это могло бы звучать незначительным, но это сводило меня с ума. Начиная с выпуска приложения к производству в прошлую пятницу на Ruby 1.9, у меня было много незначительных исключений, связанных с кодировками символов. Почти все это - некоторая вариация на:
Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8
Мы сделали, чтобы международный пользователь базировался, таким образом, много имен содержит умляуты, и т.д. Если я фиксирую шаблоны для использования force_encoding в наборе мест, он открывается в помощнике сообщения "молния". И так далее.
В данный момент похоже, что я закрепил все те, я знал о путем исправления конкатенации строк ActiveSupport в одном месте и затем путем установки # encoding: utf-8
во главе каждых из моих исходных файлов. Но чувство, что мне, возможно, придется не забыть делать это для каждого файла каждого проекта Ruby я когда-либо, делает с этого времени, навсегда, только для предотвращения строковых проблем присвоения, не устраивает в моем животе. Я читал о - переключателе Ku, но все, кажется, предупреждает, что это для назад совместимости и могло бы уйти в любое время.
Так мой вопрос для 1.9-опытных людей: устанавливает #encoding
в каждых из моих действительно необходимых файлов? Существует ли разумный способ сделать это глобально? Или, лучше, способ установить кодировку по умолчанию на нелитеральных значениях строк, которые обходят внутренние/внешние значения по умолчанию?
Заранее спасибо за любые предложения.
http://zargony.com/2009/07/24/ruby-1-9-and-file-encodings
Не путайте кодировку файлов и кодировкой строки!