Как сопоставить кодировку между приложением Windows и консольным приложением? - PullRequest
0 голосов
/ 23 марта 2019

Итак, я пишу два приложения, одно консольное и одно фоновое / windows-приложение.Эти два приложения созданы для связи друг с другом через TCP (я использую класс TcpClient и класс TcpListener).Проблема, с которой я столкнулся, заключается в том, что при изменении типа вывода фонового приложения с консольного на Windows-приложение кодирование становится не совсем понятным, а вывод на сервер (консольный сервер) печатает некоторые символы как бессмысленные.

Я попытался установить разные кодировки для потоков сокетов, но, похоже, ничего не работает.

TcpClient client = new TcpClient();
socketInput = new StreamWriter(client.GetStream());
socketOutput = new StreamReader(client.GetStream());

...

process.OutputDataReceived += new 
DataReceivedEventHandler(p_OutputDataReceived);

...

static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
    {
        if (!String.IsNullOrEmpty(e.Data))
        {
            StringBuilder strOutput = new StringBuilder();

            try
            {
                strOutput.Append(e.Data);
                Console.WriteLine(strOutput);
                socketInput.WriteLine(strOutput);
                socketInput.Flush();
            }
            catch (Exception ex) { }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...