Я только что столкнулся с этой проблемой и не смог использовать технику Console.InputEncoding
, потому что она работает только в консольных приложениях.
Из-за этого я попытался ответить Виктору, однако столкнулся с той же проблемой, что и комментатор MvanGeest, где к спецификации все еще добавлялась Через некоторое время я обнаружил, что можно создать новый экземпляр UTF8Encoding, у которого отключена спецификация, и это останавливает запись спецификации. Вот модифицированная версия примера Виктора, показывающая изменение.
StreamWriter utf8Writer = new StreamWriter(proc.StandardInput.BaseStream, new UTF8Encoding(false));
utf8Writer.Write(...);
utf8Writer.Close();
Надеюсь, это сэкономит кому-то время.