Вывод консоли C # Redirect - кодировка UTF-8 - PullRequest
0 голосов
/ 30 августа 2018

Я использую небольшой инструмент, который выполняет анализ сети и сбор данных, но нестабилен из-за своей природы, используя SharpPCap. Основа этого инструмента написана не мной (я отредактировал его в соответствии со своими потребностями), вместо этого я должен был построить свое приложение на нем, чтобы оно работало.

В настоящее время одной большой проблемой, с которой я сталкиваюсь, является кодировка UTF-8.

Процесс, фактически выполняющий работу, запускается Main-Process

Process WorkerProc = new Process();
WorkerProc.StartInfo.UseShellExecute = false;
WorkerProc.StartInfo.FileName = @"Worker.exe";
WorkerProc.StartInfo.RedirectStandardOutput = true;
WorkerProc.StartInfo.Arguments = Argument;
WorkerProc.StartInfo.StandardOutputEncoding = Encoding.UTF8;
WorkerProc.StartInfo.StandardErrorEncoding = Encoding.UTF8;
WorkerProc.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
WorkerProc.OutputDataReceived += OnOutputDataReceived;
WorkerProc.Start();
WorkerProc.BeginOutputReadLine();

Этот процесс позже записывает свои Данные, используя Console.WriteLine (StuffandThings), который перенаправляется в Main-Process.

Есть ли лучший способ сделать это, чем использовать Console.WriteLine? Я подумал, что это, вероятно, неправильно, но я не знаю лучшего способа.

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

Вот как я записываю данные в основной процесс

var utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(INPUT);
string message = utf8.GetString(utfBytes, 0, utfBytes.Length);
Console.WriteLine(message);

Ошибка должна быть где-то здесь, но я просто не знаю, что это такое. Основной процесс отображает данные в консоли, а также отправляет их на сервер журналов с помощью Log4Net.

Как я могу убедиться, что данные все еще в кодировке UTF-8? Есть ли лучший способ, чем Console.WriteLine ()?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...