У меня возникли проблемы с паролем Rails 3.0.1, Ruby 1.9.2 и локализацией моего сайта.Ruby on Rails 3, несовместимые кодировки символов: UTF-8 и ASCII-8BIT с i18n
Проблема довольно просто, у меня есть что-то подобное в представлении:
f.input :zip_code, :label => I18n.t('labels.zip_code')
и es.yml файл:
es:
labels:
zip_code: "Este código postal no es valido."
Там нет ни одного проблемы с эн. YML файл (это чисто ASCII), но когда сайт установлен с i18n.locale == 'es'
я получаю эту ошибку:
incompatible character encodings: UTF-8 and ASCII-8BIT
Я был довольно долго оглядываясь, но не нашел способ использовать мои файлы перевода UTF-8.
Знал ли кто-нибудь, как это работает?
Благодарим за помощь.
Это своего рода не по теме, но Райан Бейтс только что опубликовал railscast (http://railscasts.com/episodes/256-i18n-backends) на i18n сегодня. Если кто-нибудь увидит этот комментарий на неделе 3/6/2011, то каким-то образом этот комментарий подходит для вас. – DJTripleThreat
Джеймс имеет довольно хороший учебник в своем блоге, покрывающий почти все аспекты кодирования строк в Ruby 1.9. Чтобы понять, что означает «внешнее» и «внутреннее» кодирование, прочитайте его по адресу: http://blog.grayproductions.net/articles/ruby_19s_three_default_encodings. –
Вот удивительное объяснение кодировки в Rails: http://yehudakatz.com/2010/ 05/05/ruby-1-9-encodings-a-primer-and-the-solution-for-rails –