Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: santi810 en 28 Noviembre 2013, 23:37 pm



Título: Codificacion en archivos bat, letra ñ
Publicado por: santi810 en 28 Noviembre 2013, 23:37 pm
Hola, tengo un problema con la codificacion en archivos batch.

El problema surge cuando quiero renombrar un archivo con la letra ñ,
hasta ahora tenia windows 7 y lo arreglaba con el caracter alt+207 ¤.ç

Hace un par de semanas me instale windows 8.1 y lo raro es que en los batch que tenia escritos en windows7 el caracter ¤ sigue funcionando como letra ñ, pero en los nuevos no!!
alguien puede explicarme por que y como puedo arreglarlo?


MODIFICACION:
       Acabo de hacer una prueba, copie un archivo batch escrito desde windows 7 y edite su contenido y si funciono el caracter ¤


Título: Re: Codificacion en archivos bat, letra ñ
Publicado por: Eleкtro en 29 Noviembre 2013, 09:08 am
Debes utilizar el código de páginas ANSI adecuado para el tipo de set de caracteres que vayas a utilizar...

http://en.wikipedia.org/wiki/Windows-1252

Código
  1. @Echo OFF & CHCP 1252 1>NUL
  2.  
  3. Rename "ñaña.txt" "ñeñe.txt"
  4.  
  5. Pause&Exit

Además de eso asegúrate de guardar el script con codificación ANSI, no UTF/Unicode. Si no usas un editor de texto de terceros entonces ANSI es la codificación predeterminada por el notepad)

Saludos.


Título: Re: Codificacion en archivos bat, letra ñ
Publicado por: santi810 en 1 Diciembre 2013, 17:28 pm
Uso notepad++
si, estan guardados en UTF.
Con cambiarlos todos a ANSI llegaria o tengo que añadir en todos ellos lo de
"CHCP 1252 1>NUL"?
si lo tengo que añadir te importaria explicarme mas que hace exactamente ese codigo?

gracias!


Título: Re: Codificacion en archivos bat, letra ñ
Publicado por: Eleкtro en 1 Diciembre 2013, 18:57 pm
Con cambiarlos todos a ANSI llegaria o tengo que añadir en todos ellos lo de
"CHCP 1252 1>NUL"?

Si, si quieres usar el set de caracteres Hispano tienes que especificar el CHCP Hispano, en todos y cada uno de los códigos donde uses dichas letras, y además guardar los archivos en codificación ANSI de Windows.

Hay otras alternativas, como especificar el CHCP por defecto que debe usar la consola de tu sistema operativo (lo puedes hacer desde el registro), o hacer la conversión manual de la letra "ñ"/"¤" (lo que estabas haciendo y no te funcionaba, porque tienes los archivos en UTF), si haces esto último entonces no requieres usar el comando CHCP.

El comando CHCP cambia la manera en la que se interpretan algunas letras, o mejor dicho adapta la interpretación de un set de caracteres específico para una región en concreto.

Lee: http://en.wikipedia.org/wiki/Code_page + http://ss64.com/nt/chcp.html

Saludos