2015-01-14 2 views
1

У меня возникла небольшая проблема с обработкой bat/batch-файлов из .NET. Я делаю Process.Start, и я могу запустить фактический файл, однако, если файл bat закодирован с UTF8, он получает некорректно декодированное, так как DOS использует некоторую другую кодировку.Process.Start batch-file и encoding

Могу ли я начать процесс с другой кодировкой и повлияет на кодировку фактического файла bat?

Файл bat включен в качестве ресурса «Копировать всегда» в проект, и я не совсем комфортно сохраняю его с помощью DOS-кодирования и проверяет его на TFS и распространяет его всем членам команды, совершенно уверен, что это взорвется в конечном итоге ..

+0

Что произойдет, если вы сначала используете chcp для переключения в Юникод? Например: http://stackoverflow.com/a/4890124/2454476 – bennettp123

ответ

1

UTF должен быть абсолютно нормальным, я думаю, что проблема заключается в спецификации (байтовый порядок) в начале файла. Чтобы избавиться от него:

Выберите сохранение как и продолжите кнопку сохранения в диалоговом окне файла и выберите «Сохранить с кодировкой». Или, если вы хотите полностью избавиться от этой настройки, просто откройте меню «Файл» и выберите «Дополнительные параметры сохранения», и там вы должны выбрать «UTF-8 без подписи» (и это также ответило на ваш последний вопрос :). Да «UTF-8 без подписи» такой же, как без спецификации. (UTF-8 without BOM)

+1

Следует отметить, что спецификация в UTF8 обычно не соответствует самой спецификации Юникода, именно потому, что она испортила отличную совместимость с ASCII. Таким образом, отключение спецификаций для всех процессоров UTF8, которые уже не должны быть стандартными. –