Обновление: лучшим вариантом может быть использование гема 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. Вы можете позаимствовать часть кода , если не хотите использовать его как внешнюю зависимость.