如何在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
我使用它将标题转换为永久链接,而不删除重音字符。
有没有办法使用pack
或unpack
方法转换这些文本?
更新:更好的选择可能是使用专门为这些缺失的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')
方法。 奇迹般有效。