首页 > 解决方案 > 如何匹配 Windows 应用程序和控制台应用程序之间的编码?

问题描述

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

标签: c#windowsencodingconsole

解决方案


推荐阅读