Hola, en una aplicación necesito convertir todo de mayusculas a
minusculas, el problema me surge con la ñ, me pasa lo siguiente:
irb(main):001:0> “Ñ”.downcase
=> “\303\221”
me devuelve un caracter raro, y si le paso un string me convierte
todos los elementos a minusculas menos la Ñ.
Alguna idea de por que puede estar pasando? uso Ubuntu, y ruby 1.8.5
Saludos.
On 5/29/07, Manu C. [email protected] wrote:
Hola, en una aplicación necesito convertir todo de mayusculas a
minusculas, el problema me surge con la ñ, me pasa lo siguiente:
irb(main):001:0> “Ñ”.downcase
=> “\303\221”
Ruby por ahora no entiende de caracteres Unicode, por lo que las
operaciones de caracteres sobre un String son “peligrosas”.
Hace poco entró en el trunk de Rails una extensión en ActiveSupport
que permite el manejo de texto en Unicode.
Qué pasa con esto?
$ ./script/console
“Ñ”.chars.downcase.to_s
La clase Chars se comporta en todo como un String, pero la
conversiónexplícita mediante #to_s te sirve para ver el resultado en la consola.
Saludos!
El resultado es la misma ñ mayuscula, pero como unicode “escapado”.
Los metodos downcase y upcase no saben nada de los caracteres
acentuados.
En una consola a palo seco sin rails, yo hago
$KCODE = “U”
require “active_support”
“á”.chars.downcase
=> #<ActiveSupport::Multibyte::Chars:0x15f7174 @string=“á”>
“á”.chars.upcase
=> #<ActiveSupport::Multibyte::Chars:0x15edee4 @string=“Á”>
parece que funciona bien, ahora…
como se hace para transformar una cadena como
“\u00f1 \u00e1 \u00e9 \u00ed \u00f3 \u00fa” en sus caracteres