Je travaille avec des fichiers batch dans Windows, en utilisant à la fois le Bloc-notes et le Bloc-notes ++. Lorsque j'exécute les fichiers batch, qui commencent tous par @echo off
, je vois la première ligne (lors de l'exécution sur deux machines distinctes) lire ´╗┐@echo off
, puis toutes les lignes REM en dessous apparaissent également.
J'ai essayé de changer l'encodage dans Notepad ++, mais il prétend qu'ils sont déjà à l'encodage UTF-8, ce qui semble être correct.
Que dois-je faire pour que ces fichiers fonctionnent correctement?
Réponses:
Il ressemble au codage ASCII DOS de la marque d'ordre des octets pour UTF-8
(0xEF 0xBB 0xBF)
: http://en.wikipedia.org/wiki/Byte_order_markDans Notepad ++, essayez de l'encoder en "UTF-8 sans BOM" ou en ASCII ordinaire. Je pense que l'utilisation de la nomenclature pour UTF-8 est déconseillée pour cette raison, elle n'est pas exactement rétrocompatible avec ASCII.
la source
>>> print u'\ufeff'.encode('utf8').decode('cp850') ´╗┐
╗┐
depuis l'époque de MS-DOS 5 / Windows 3.11. Windows moderne doit exécuter des fichiers batch avec cet encodage pour des raisons de compatibilité?Il s'avère qu'il doit être défini sur le codage ANSI pour fonctionner correctement. Pour définir cela, j'ai choisi Encoding -> Encode in ANSI .
Pour comprendre cela, j'ai essayé de créer un fichier de commandes à partir de la ligne de commande.
J'ai ensuite ouvert ce fichier dans Notepad ++ et vérifié l'encodage dans le coin inférieur droit, qui lisait ANSI en UTF-8 . Je ne sais pas pourquoi cela ajoute ce dernier morceau, mais cela semble fonctionner maintenant.
la source