如何在Ruby 1.9上替换Unicode gem?

不幸的是,Unicode 0.1( sudo gem install unicode )在Ruby 1.9上不起作用。 我有以下代码段:

 require "rubygems" require "unicode" str = "áéíóúç" Unicode.normalize_KD(str).gsub(/[^\x00-\x7F]/n, "") #=> aeiouc 

我使用它将标题转换为永久链接,而不删除重音字符。

有没有办法使用packunpack方法转换这些文本?

更新:更好的选择可能是使用专门为这些缺失的function创建的gem unicode_utils

 require "unicode_utils" UnicodeUtils.nfkd("áéíóúç").gsub(/[^\x00-\x7F]/,'').to_s #=> "aeiouc" 

您是否有可能依赖Rails的ActiveSupport? 然后你可以做以下事情:

 require "activesupport" mb_str = ActiveSupport::Multibyte::Chars.new("áéíóúç") mb_str.normalize(:kd).gsub(/[^\x00-\x7F]/,'').to_s #=> "aeiouc" 

ActiveSupport::Multibyte是为了给Ruby 1.8带来UTF-8 / Unicode支持,但在1.9中工作正常。 如果您不希望它作为外部依赖项,您可以借用一些代码 。

在Rails中还有I18n.transliterate('string')方法。 奇迹般有效。