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