c# - 如何匹配 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) { }
}
}
解决方案
推荐阅读
- javascript - 如何从我的网络应用程序更改 chrome 浏览器“下载 pdf 而不是打开”?
- r - 在 R 中使用 cardmatch 执行匹配后的结果分析
- jquery - 在 mdTimePicker 中设置 12:30 PM 默认值
- javascript - 不推荐使用 componentWillMount
- regex - 如何在regx中匹配小于50的int
- node.js - 如何传递变量来表达路线?
- python-3.x - Pandas 映射 2 个数据帧中的值和外连接 + 聚合值
- javascript - 输入数据 -> javascript 和三元运算符
- java - 在复杂对象的结构中按变量对列表进行排序
- python - 一段时间后停止 Spark 会话 - Pyspark