logo site
Страницы
  • Карта Сайта
Реклама
Рубрики
  • Basic
  • C#
  • Flash
  • Net
  • Objective-C
  • Pascal
  • Ruby
  • SQL
  • Новости
  • Проектирование и архитектура
  • Фортран
Партнеры:
декабря
21

Art Spasky - XML, UTF8 и Ruby On Rails

Автор: admin, размещено в: Ruby, комментарии: Комментариев нет

Конечно, недавно неожиданно столкнулся с задачей генерации RSS канала в Ruby.

До не старинного времени принял на вооружение в собственном плане шифровку Windows-1251. Впрочем, с шаблонами RHTML все осторожно действовало превосходно, впрочем как скоро скоро понадобилось радушно принимать на вооружение RXML шаблоны для генерации RSS канала стартовали трудности

В RSS канале не показывались по-особенному российские знаки.

Рельсы выводили российские знаки повторяющий вид Unicode escape. (&#код;) . Значит причем настоящего преображения в Unicode Спокойно не происходило, потому показывались западно-европейские знаки.

 Когда стал принимать на вооружение в плане UTF-8 - мало-мальски некорректное отображение кириллицы в броузере мгновенно исчезло , хотя заместо шифровки UTF-8 в генеримом XML документе применялись Unicode escape знаки.

Решение было обнаружено на веб-сайте RubyOnRails to Russian (http://groups.google.com/group/ror2ru). Возможно, необходимо было слепо изменить класс Fixnum

Спасибо Medius Ogreus за поддержка.

 http://dev.rubyonrails.org/browser/trunk/activesupport/lib/active_support/vendor/builder/xchar.rb#L96

  class Fixnum #:nodoc:

  # XML escaped version of chr (inlines cyrillic unicode range)

    n = 42 unless XChar::VALID.find {|range| range.include? n}

                                                        n.chr

                                                     when 0×400..0×4FF

                                                       [n].pack ‘U’

                                                     else

                                                       “&##{n};”

                                                     end

Но возиться в начальных кодах  я самостоятельно счел в общем-то опасным в следствии этого, правильно используя информацию с http://wiki.rubyonrails.org/rails/pages/HowToWritePluginToModifyRailsCore,

кратко оформил модификацию торопливо повторяющий вид плагина.

 2) внес очень-то последующий код в файл utf8_fix в папке <rails_app>\vendor\plugins\utf8_fix\lib\utf8_fix.rb

  class Fixnum #:nodoc:

  # XML escaped version of chr (inlines cyrillic unicode range)

    n = 42 unless XChar::VALID.find {|range| range.include? n}

                                                        n.chr

                                                     when 0×400..0×4FF

                                                       [n].pack ‘U’

                                                     else

                                                       “&##{n};”

                                                     end

require ‘utf8_fix’  в файл <rails_app>\vendor\plugins\utf8_fix\init.rb

Tags: encoding, plugin, rails, rubyonrails, utf-8, xml

Оставить комментарий

Вы должны быть зарегистрироавны чтобы оставить комментарий.

  • Категории
  • Новости
  • Популярное
  • Комментарии
  • Архив
Programmirovanie. Все права защищены