En primer lugar un saludo, soy nuevo en el foro y no mucho más en Perl.
Me he topado con un problema de novatos (supongo), y no he encontrado la solución en ningún foro.
Estoy creando un script en Perl que, en esencia, captura mediante el STDIN una cadena de texto y luego la guarda en un archivo (en este caso he elegido txt, pero podría ser cualquiera).
Me encuentro que debe haber una incompatibilidad entre la codificación que utiliza Perl y la que utiliza el Command de Windows ya que, los print en los que utilizo caracteres con acentos o eñes, me los cambia por otros símbolos. Y lo mismo ocurre en el proceso inverso, al capturar un texto escrito por la entrada estándar, me estropicia los caracteres con acentos y las eñes.
Como no lo he utilizado mucho, tampoco sé si este es el modo correcto de utilizar un script de Perl (mediante el Command de Windows), así que agradecería cualquier ayuda o consejo que podáis darme.
Como ejemplo al problema, tengo un pequeño script:
Using perl Syntax Highlighting
sub capturaNombre($){
if ($_[0] ne "") {
print "Variable anterior: ".$_[0]."\n";
print "Nueva variable: ";
$_[0]=<STDIN>;
chop($_[0]);
capturaNombre($_[0]);
}
}
$variable = "áéíóú ñ aeiou";
capturaNombre($variable);
if ($_[0] ne "") {
print "Variable anterior: ".$_[0]."\n";
print "Nueva variable: ";
$_[0]=<STDIN>;
chop($_[0]);
capturaNombre($_[0]);
}
}
$variable = "áéíóú ñ aeiou";
capturaNombre($variable);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
En él vemos que los caracteres que le paso a través de Perl me los corrompe, pero si le introduzco yo algunos, me los muestra bien.
Bien, pues al almacenarlos, también los corrompe.
¿Qué hago mal?
Un saludo y muchas gracias