Я работаю с пакетными файлами в Windows, используя как Блокнот, так и Блокнот ++. Когда я запускаю командные файлы, которые все начинаются с @echo off
, я вижу первую строку (при работе на двух разных машинах), читающую ´╗┐@echo off
, а затем появляются также все строки REM под ним.
Я попытался изменить кодировку в Notepad ++, но он утверждает, что они уже находятся в кодировке UTF-8, что представляется правильным.
Что мне нужно сделать, чтобы эти файлы работали правильно?
Ответы:
Это похоже на кодировку DOS ASCII метки порядка байтов для UTF-8
(0xEF 0xBB 0xBF)
: http://en.wikipedia.org/wiki/Byte_order_markВ Notepad ++ попробуйте кодировать его как «UTF-8 без спецификации» или как простой ASCII. Я думаю, что использование спецификации для UTF-8 не рекомендуется, потому что она не совсем обратно совместима с ASCII.
источник
>>> print u'\ufeff'.encode('utf8').decode('cp850') ´╗┐
╗┐
штриховой графики со времен MS-DOS 5 / Windows 3.11. Современная Windows должна запускать пакетные файлы с этой кодировкой для совместимости?Оказывается, для правильной работы необходимо установить кодировку ANSI . Чтобы установить это, я выбрал Encoding -> Encode in ANSI .
Чтобы понять это, я попытался создать командный файл из командной строки.
Затем я открыл этот файл в Notepad ++ и проверил кодировку в правом нижнем углу, которая читала ANSI как UTF-8 . Я не знаю, почему это добавляет этот последний бит, но, похоже, сейчас работает.
источник