富文本框和字节数组
Richtextbox and byte array
我正在开发一个程序,它应该在我的 udp 端口上显示 richtextbox 上的所有文本。但这里有一个问题。它显示错误的文本。例如:
如果我应该得到 "Hi",它会显示 "b¬ю"。代码:
private void Chat(object sender, EventArgs e)
{
alive = true;
try
{
while (alive)
{
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, Port);
byte[] bytes = client.Receive(ref groupEP);
string message = Encoding.Default.GetString(bytes);
string time = DateTime.Now.ToShortTimeString();
Invoke(new MethodInvoker(() =>
{
MB.AppendText("\r\n" + time + " " + message);
}));
}
}
catch (ObjectDisposedException)
{
if (!alive)
return;
throw;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
请帮忙!
我认为它来自您的 UDP 字符集编码。尝试写:
MB.AppendText("Hello");
如果它仍然出现编码,则可能是 richtextbox 的原因,但我最确定这是由通道编码引起的。
这是我的决定。
现在完美运行了。
string[] sep = { "[=10=]" };
string[] res = message.Split(sep,StringSplitOptions.None);
Invoke(new MethodInvoker(() =>
{
MB.AppendText("\r\n" + time + " " + res[1]);
}));
我正在开发一个程序,它应该在我的 udp 端口上显示 richtextbox 上的所有文本。但这里有一个问题。它显示错误的文本。例如: 如果我应该得到 "Hi",它会显示 "b¬ю"。代码:
private void Chat(object sender, EventArgs e)
{
alive = true;
try
{
while (alive)
{
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, Port);
byte[] bytes = client.Receive(ref groupEP);
string message = Encoding.Default.GetString(bytes);
string time = DateTime.Now.ToShortTimeString();
Invoke(new MethodInvoker(() =>
{
MB.AppendText("\r\n" + time + " " + message);
}));
}
}
catch (ObjectDisposedException)
{
if (!alive)
return;
throw;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
请帮忙!
我认为它来自您的 UDP 字符集编码。尝试写:
MB.AppendText("Hello");
如果它仍然出现编码,则可能是 richtextbox 的原因,但我最确定这是由通道编码引起的。
这是我的决定。 现在完美运行了。
string[] sep = { "[=10=]" };
string[] res = message.Split(sep,StringSplitOptions.None);
Invoke(new MethodInvoker(() =>
{
MB.AppendText("\r\n" + time + " " + res[1]);
}));