Estou trabalhando com arquivos em lotes no Windows, usando o Notepad e o Notepad ++. Quando executo os arquivos em lote, com os quais todos começam @echo off
, vejo a primeira linha (quando executada em duas máquinas separadas) lendo ´╗┐@echo off
e, em seguida, todas as linhas REM abaixo também aparecem.
Tentei alterar a codificação no Notepad ++, mas alega que eles já estão na codificação UTF-8, que parece estar correta.
O que preciso fazer para que esses arquivos funcionem corretamente?
Respostas:
Parece com a codificação DOS ASCII da Byte Order Mark para UTF-8
(0xEF 0xBB 0xBF)
: http://en.wikipedia.org/wiki/Byte_order_markNo Notepad ++, tente codificá-lo como "UTF-8 sem BOM" ou como ASCII simples. Acho que o uso da BOM para UTF-8 é desencorajado por esse motivo, não é exatamente compatível com o ASCII.
fonte
>>> print u'\ufeff'.encode('utf8').decode('cp850') ´╗┐
╗┐
desde os dias do MS-DOS 5 / Windows 3.11. O Windows moderno deve executar arquivos em lote com essa codificação para compatibilidade?Acontece que ele precisa ser definido como codificação ANSI para funcionar corretamente. Para definir isso, escolhi Codificação -> Codificar em ANSI .
Para descobrir isso, tentei criar um arquivo em lotes na linha de comando.
Abri esse arquivo no Notepad ++ e verifiquei a codificação no canto inferior direito, que dizia ANSI como UTF-8 . Não sei por que adiciona esse último bit, mas parece funcionar agora.
fonte