Это может звучать незначительно, но это заводило меня с ума. Начиная с выпуска приложения в пятницу в пятницу на Ruby 1.9, у меня было много мелких исключений, связанных с кодировкой символов. Почти все это некоторые вариации:
Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8
У нас есть международная пользовательская база, поэтому многие имена содержат умляуты и т.д. Если я исправлю шаблоны, чтобы использовать force_encoding в кучке мест, он появляется в вспомогательном сообщении флэш-сообщения. Et cetera.
На данный момент похоже, что я прибил все те, о которых я знал, путем исправления конкатенации строк ActiveSupport в одном месте, а затем, установив # encoding: utf-8
в начало каждого из моих исходных файлов. Но ощущение, что мне, возможно, придется помнить, что для каждого файла каждого проекта Ruby, который я когда-либо делал с этого момента, навсегда, просто чтобы избежать проблем с назначением строк, плохо сидит у меня в животе. Я читал о переключателе -Ku, но все, кажется, предупреждает, что он для обратной совместимости и может исчезнуть в любое время.
Итак, мой вопрос для 1.9-опытных людей: устанавливает #encoding
в каждом из моих файлов, действительно необходимых? Есть ли разумный способ сделать это глобально? Или, лучше, способ установить кодировку по умолчанию для нелиберальных значений строк, которые обходят внутренние/внешние значения по умолчанию?
Заранее благодарим за любые предложения.