Если Вы работаете с X ML [HT], одной из основанных на теге систем шаблонной обработки, которые могут уехать, Вы с правильно построенными шаблонами - хорошее перемещение. Я использую PXTL, FWIW. (Это может произвести другие форматы, но если бы Ваш акцент не является XML или HTML, это не был бы разумный выбор.)
у меня есть интенсивная неприязнь к шаблонной обработке систем, которые требуют к “help, Вы разделяете бизнес-логику и presentation” путем ограничения выражений их собственным Небольшим Языком. Они, кажется, не понимают, что там таково как вещь как “presentation logic”, и она может быть иногда сложной достаточно для необходимости в Реальном Языке как Python для выполнения его. Наличие Вас выгоняет Вашу логику представления в приложение с бизнес-логикой, так не победа . Избегайте!
(Ограниченное выражение отдельный подход мини-языка имел некоторый смысл в вЂEL’ JSP, поскольку Java является слишком раздражающе подробным для использования в библиотеке шаблонной обработки. Но у нас есть Python! Это идеально подходит для записи выражений в шаблонах, как это; прерывающая функциональность и то, чтобы заставлять пользователя выучить другой новый язык получают Вас ничто.)
Обновление: лучшим вариантом может быть использование драгоценного камня unicode_utils
, который был создан специально для этих недостающих функций:
require "unicode_utils"
UnicodeUtils.nfkd("áéíóúç").gsub(/[^\x00-\x7F]/,'').to_s
#=> "aeiouc"
Есть ли вероятность, что вы можете положиться на ActiveSupport Rails? Затем вы можете сделать следующее:
require "activesupport"
mb_str = ActiveSupport::Multibyte::Chars.new("áéíóúç")
mb_str.normalize(:kd).gsub(/[^\x00-\x7F]/,'').to_s
#=> "aeiouc"
ActiveSupport :: Multibyte
был написан для обеспечения поддержки UTF-8 / Unicode в Ruby 1.8, но отлично работает и в 1.9. Вы можете позаимствовать часть кода , если не хотите, чтобы он был внешней зависимостью.