unicode_normalize(form = :nfc) -> String
[permalink][rdoc][edit]-
self を NFC、NFD、NFKC、NFKD のいずれかの正規化形式で Unicode 正規化した文字列を返します。
- [PARAM] form:
- 正規化形式を :nfc、:nfd、:nfkc、:nfkd のいずれかで指定します。省略した場合は :nfc になります。
- [EXCEPTION] Encoding::CompatibilityError:
- self が Unicode 文字列ではない場合に発生します。
このメソッドでの "Unicode 文字列" とは、UTF-8、UTF-16BE/LE、 UTF-32BE/LE だけではなく GB18030、UCS_2BE、and UCS_4BE を含みます。
また、self が UTF-8 以外のエンコーディングであった場合は一度 UTF-8 に変換してから正規化されるため、UTF-8 よりも遅くなっています。
"a\u0300".unicode_normalize # => 'à' ("\u00E0" と同じ) "a\u0300".unicode_normalize(:nfc) # => 'à' ("\u00E0" と同じ) "\u00E0".unicode_normalize(:nfd) # => 'à' ("a\u0300" と同じ) "\xE0".force_encoding('ISO-8859-1').unicode_normalize(:nfd) # => Encoding::CompatibilityError raised
[SEE_ALSO] String#unicode_normalize!, String#unicode_normalized?