Seguro que es una pregunta de novato pero no sé como googlear para
encontrar
solución.
Cuando divido una palabra en sus caracteres con .split(//) los
caracteres especiales no-ingleses me aparecen en formato ‘escapado’ :
\nnn
Pasa con cualquier combinación de split que haga:
“ñoño”.split(//).each { |l| p l }
=> ["\303", “\261”, “o”, “\303”, “\261”, “o”]
“ñoñoyjesús”.split(/y/).each { |l| p l }
=> ["\303\261o\303\261o", “jes\303\272s”]
Tengo un problema con esto porque el valor devuelto por el .split lo
uso luego como clave de un Hash y claro… no es lo mismo la clave
"ñ"que la clave “\303”, “\261”, además que esta última son como si fueran
dos pasadas del each…
Es como si a cada resultado del .split se le pasara internamente el
método: .inspect ó .dump
Oláaa¡¡. menudo lío se monta el autor del post… que miedo he pasado.
Menos mal que me he leído los comentarios
irb> “ñoño”.scan(/./u) { |c| puts c }
Mira las implicacions en eficiencia que menciona el autor por usarlo
así, si vas a estar haciendo algo semi-intensivo seguramente no
querrás estar haciendo una cadena nueva por cada letra.