Обычно для этого используется нормализация Юникода.
Использование UnicodeUtils.nfkc с использованием гема unicode_utils (https://github.com/lang/unicode_utils) должно дать вам конкретное поведение, которое вы запрашиваете; форма нормализации Юникода kCбудет использовать декомпозицию совместимости с последующим преобразованием строки в составленную форму, если она доступна (в основном то, что вы просили в вашем примере). (Вы также можете приблизиться к тому, что вы хотите, с помощью формы нормализации c, иногда сокращенно NFC).
Как заменить гем Unicode на Ruby 1.9? содержит дополнительные сведения.
В Ruby 1.8.7 вам нужно будет выполнить установку gem Unicode, для которой естьдоступна аналогичная функция.
Отредактировано, чтобы добавить: Основная причина, по которой вы, вероятно, захотите использовать форму нормализации kC вместо простой формы нормализации C, заключается в том, что лигатуры (символы, сжатые по историческим / типографским причинам) сначала будутразлагается на отдельных персонажей, что иногда желательно, если вы делаетеxicographic заказ или поиск).