Introdução
O método upcase / downcase para strings ASCII funciona muito bem.
"turtle".upcase
=> "TURTLE"
"TURTLE".downcase
=> "turtle"
Problema
=
A tradução polonesa de “tartaruga” é “żółw”. Vamos tentar aumentar:
"żółw".upcase
=> "żółW"
E quanto ao downcase?
"ŻÓŁW".downcase
=> "ŻÓŁw"
Como podemos ver, o método upcase / downcase não funciona corretamente para strings contendo caracteres não ASCII.
Solução
Rails nos fornece um método útil – mb_chars .
"żółw".mb_chars.upcase
=> "ŻÓŁW"
"ŻÓŁW".mb_chars.downcase
=> "żółw"
Agora funciona!
Clique aqui para ler mais sobre mb_chars .