Caracteres com acento em ruby
til ruby caracteres encoding
Este post não é exatamente um TIL, mas sim um post sobre um problema que tive e como resolvi.
Problema
Estava pareando hoje para resolver um problema em uma regular expression e precisavamos verificar se o antes e o pós de uma string continha caracteres alfanuméricos.
Como estamos falando de português, acentos e cedilhas são comuns, então precisavamos levar em conta esses caractéres também.
Solução
Uma solução rápida foi adicionar os caracteres acentuados e cedilhas na regex,
como o range do À
até o ÿ
:
[\wÀ-ÿ]
Dessa forma, conseguimos verificar se a string contém caracteres alfanuméricos.
Para entender melhor o range, podemos usar o método chr
e ord
para ver o código do caractere:
chars = Array(0..255).map { _1.chr('utf-8') }
pp chars
E para utilizar fazer o processo inverso, podemos usar o método ord
:
pp chars.map(&:ord)
Se voce reparar, o range do À
até o ÿ
é de 192
até 255
.
Espero que isso ajude alguém que esteja com o mesmo problema que eu tive hoje.
Quer conversar sobre este artigo? Mande-me uma mensagem.