Estoy trabajando con archivos por lotes en Windows, usando Notepad y Notepad ++. Cuando ejecuto los archivos por lotes, que comienzan con todos @echo off
, veo la lectura de la primera línea (cuando se ejecuta en dos máquinas separadas) ´╗┐@echo off
, y luego también aparecen todas las líneas REM debajo.
He intentado cambiar la codificación en Notepad ++, pero afirma que ya están en la codificación UTF-8, que parece ser correcta.
¿Qué debo hacer para que estos archivos se ejecuten correctamente?
Respuestas:
Parece la codificación ASCII de DOS de la marca de orden de bytes para UTF-8
(0xEF 0xBB 0xBF)
: http://en.wikipedia.org/wiki/Byte_order_markEn Notepad ++ intente codificarlo como "UTF-8 sin BOM" o como ASCII simple. Creo que se desaconseja el uso de BOM para UTF-8 por esta razón, no es exactamente compatible con ASCII.
fuente
>>> print u'\ufeff'.encode('utf8').decode('cp850') ´╗┐
╗┐
desde los días de MS-DOS 5 / Windows 3.11. ¿Windows moderno debe ejecutar archivos por lotes con esa codificación para compatibilidad?Resulta que debe establecerse en codificación ANSI para que funcione correctamente. Para configurar esto, elegí Codificación -> Codificar en ANSI .
Para resolver esto, intenté crear un archivo por lotes desde la línea de comandos.
Luego abrí este archivo en Notepad ++, y verifiqué la codificación en la esquina inferior derecha, que decía ANSI como UTF-8 . No sé por qué agrega ese último bit, pero parece funcionar ahora.
fuente