Update: eine bessere Option sein kann, das Juwel unicode_utils
zu verwenden, die speziell für diese fehlenden Funktionen erstellt wurde:
require "unicode_utils"
UnicodeUtils.nfkd("áéíóúç").gsub(/[^\x00-\x7F]/,'').to_s
#=> "aeiouc"
Gibt es eine Möglichkeit, Sie auf Rails Active verlassen können? Dann können Sie folgendes tun:
require "activesupport"
mb_str = ActiveSupport::Multibyte::Chars.new("áéíóúç")
mb_str.normalize(:kd).gsub(/[^\x00-\x7F]/,'').to_s
#=> "aeiouc"
ActiveSupport::Multibyte
geschrieben wurde UTF-8/Unicode-Unterstützung zu Ruby 1.8 zu bringen, sondern arbeitet in 1.9 auch in Ordnung. Sie können möglicherweise einige von the code ausleihen, wenn Sie es nicht als externe Abhängigkeit wollen.
Sie sollten durch die Ruby-Talk-Archive graben. Ich bin mir ziemlich sicher, dass der Autor des Unicode-Edelsteins in den letzten Tagen/Wochen dort eine neue Version angekündigt hat, und ich bin mir auch ziemlich sicher, dass Ruby 1.9 in diesem Thread diskutiert wurde. Ich habe den Thread jedoch nicht wirklich gelesen, daher habe ich keine Besonderheiten. –
Eigentlich war das * nicht * das Unicode-Juwel, sondern das von @molf unten erwähnte Unicode-Utils-Juwel. (Es war auch nicht in den letzten Tagen, es war vor 3 Monaten.) –