Учитывая UTF-8 + Windows CMD кошмар ...
После прочтения этого вопроса, являются ли эти решения только частичными? Есть ли способ установить глобально набор символов / кодировку в среде cmd? Кажется, что команда CHCP не меняет кодировки stdout / stderr.
Чтобы проверить это: напишите программу, которая заполняет файл латинскими / корейскими / украинскими строками.
При прямом выводе файл будет в порядке, если вы правильно установите кодировку в исходном коде (я проверил это с помощью Java, простые настройки кодирования для файлов).
Но если вы перенаправите вывод в файл журнала, у вас будет просто серия ????????????????????
в этом ...
Также может быть полезно перенаправление, например:
PROMPT> myprog < inputdata.txt > outputdata.txt
Я что-то пропустил? Это cmd, который плохо конвертирует stdout, или Java, который адаптирует System.out, в зависимости от кодировки cmd? Я не нашел никакого метода, чтобы переопределить кодировку System.out/err.