среда, 31 августа 2011 г.

Re: Ruby 1.9.2, Builder и текст в UTF-8

а в IRB как у вас?

Builder::XmlMarkup.new.feed "<h1>привет</h1>"
 => "<feed>&lt;h1&gt;привет&lt;/h1&gt;</feed>" 

Вроде так надо? Я ничего специального не делал
--
Yury Korolev
AnjLab Team http://anjlab.com


2011/8/31 Andrei Dziahel <develop7@develop7.info>
Всем привет.

Преамбула. Готовлю (точнее допиливаю) RSS для сервиса Яндекс.Новости. Фид готовится, натурально, Builderом, который экранирует не-ASCII символы (делает из них entities типа &#1234;). Мне-то всё равно, да и всяким читалкам тоже. Но вот в яндексе настоятельно просят так не делать — им вроде как нужно смотреть в исходник фида глазами, а entities они читать не умеют.

README Builderа гласит (в сааамом конце), что 
You can get UTF-8 encoded output by making sure that the XML encoding is set to "UTF-8" and that the $KCODE variable is set to "UTF8".
Однако в Ruby 1.9 глобальная переменная $KCODE игнорируется, о чём интерпретатор и ругается при попытке присвоить ей что-нибудь.

Использовать << мне не подходит — экранировать тэги (а именно, символы "<" и ">") нужно. По той же причине не подходит monkeypatch, отрубающий эскейпинг вообще/по запросу. 
И да, баг в bundler висит уже джва года

Собственно, вопросы
  • возможно ли разрешить эту проблему средствами Builder?
  • есть ли в природе готовый патч к builder, чинящий эту багу?
  • подвержены ли этому багу аналоги Builder?
  • если нет — сложно ли заставить приложение использовать аналог?
Заранее благодарен.
--
Regards,
Andrei Dziahel

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

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