如何在Windows应用程序和控制台应用程序之间匹配编码?

时间:2019-03-23 17:56:11

标签: c# windows encoding console

因此,我正在编写两个应用程序,一个控制台应用程序和一个后台/ 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) { }
        }
    }

0 个答案:

没有答案