【发布时间】:2014-01-17 09:44:46
【问题描述】:
我在通过 C# 套接字发送西里尔文文本“УБА221”时遇到问题。它变成了“#xxxxx221”。这是 xxxxx 是 5 个我无法复制粘贴的奇怪字母。
服务器端(接收端):
SocketPacket theSockId = (SocketPacket)asyn.AsyncState;
int iRx = theSockId.thisSocket.EndReceive(asyn);
char[] chars = new char[iRx + 1];
System.Text.Decoder d = System.Text.Encoding.UTF8.GetDecoder();
int charLen = d.GetChars(theSockId.dataBuffer, 0, iRx, chars, 0);
System.String szData = new System.String(chars);
TextLabel.Text =TextLabel.Text+ szData;
客户端(发送):
subtext = "УБА221";
byte[] byData = System.Text.Encoding.UTF8.GetBytes(subtext);
socket.Send(byData);
知道为什么我的代码不起作用吗?
【问题讨论】:
-
我把 UTF32 改成了 UTF8。但仍然无法正常工作。稍后我将尝试 Encoding.UTF8.GetString(bytes, 0, bytesToDecode)。