class ActiveSupport::Multibyte::Chars

def decompose

'é'.mb_chars.decompose.to_s.length # => 3
'é'.length # => 2

Performs canonical decomposition on all the characters.
def decompose
  chars(Unicode.decompose(:canonical, @wrapped_string.codepoints.to_a).pack('U*'))
end