Если вы выполняете автоматизацию в Windows и перенаправляете вывод различных команд (внутренних cmd.exe
или внешних), вы обнаружите, что ваши файлы журналов содержат комбинированные выходные данные Unicode и ANSI (это означает, что они недопустимы и не будут хорошо загружаться в средствах просмотра / редактирования).
Можно ли заставить cmd.exe работать с UTF-8? Этот вопрос не об отображении, а о перенаправлении stdin / stdout / stderr и Unicode.
Я ищу решение, которое позволило бы вам:
- перенаправить вывод внутренних команд в файл, используя UTF-8
- перенаправить вывод внешних команд, поддерживающих Unicode, в файлы, но закодированные как UTF-8.
Если невозможно получить такой вид консистенции с помощью пакетных файлов, есть ли другой способ решения этой проблемы, например использование сценариев Python для этого? В этом случае я хотел бы знать, возможно ли выполнить обнаружение Unicode в одиночку (пользователь, использующий сценарии, не должен помнить, будут ли вызываемые инструменты выводить Unicode или нет, он просто ожидает преобразования вывода в UTF-8.
Для простоты мы будем предполагать, что если выход инструмента не-Unicode, он будет рассматриваться как UTF-8 (без преобразования кодовой страницы).