5

残念ながら、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ますか?

4

2 に答える 2

13

更新:unicode_utilsこれらの不足している機能のために特別に作成された gem を使用することをお勧めします。

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::MultibyteUTF-8/Unicode サポートを Ruby 1.8 にもたらすために書かれましたが、1.9 でも問題なく動作します。外部依存関係にしたくない場合は、コードの一部を借用できる場合があります。

于 2009-08-24T16:06:27.613 に答える