Ruby: String#scrub の追加と String#encode の改善Ruby: Unicode 正規化を行うRuby: UTF-8-MAC(UTF-8-HFS) を UTF-8 (NFC) に変換するRuby: 書記素クラスターを考慮して文字数を求めるRuby: 正規表現の Unicode プロパティにマッチする文字を列挙する Ruby 2.0 では正規表現で書記素クラスター (grapheme cluster) にマッチする \X を使えるようになった。 // がぎぐ str = "\u304B\u3099\u304C\u3099\u304E\u3099" p 6 === str.length p 3 === str.scan(/\X/).length length = 0 str.scan(/\X/) {|c| length += 1 } p 3 === length R