C# 套接字连接的字符编码问题

C# 套接字连接的字符编码问题,c#,sockets,character-encoding,tcpclient,C#,Sockets,Character Encoding,Tcpclient,我将数据发送到套接字和连接,并检索一些数据。我正在检索的数据(这是一个XML文档)包含像ä,ü,ö,。。。但这些都没有正确编码,我只知道?或)符号而不是umlaut 我如何检索数据是否有错误?数据以ISO-8859-1编码方式发回 我的代码: public bool GetData() { 尝试 { TcpClient TcpClient=新的TcpClient(“THEIP”,5004); NetworkStream ns=tcpClient.GetStream(); 如果(ns.CanWr

我将数据发送到套接字和连接,并检索一些数据。我正在检索的数据(这是一个XML文档)包含像ä,ü,ö,。。。但这些都没有正确编码,我只知道?或)符号而不是umlaut

我如何检索数据是否有错误?数据以ISO-8859-1编码方式发回

我的代码:

public bool GetData()
{
尝试
{
TcpClient TcpClient=新的TcpClient(“THEIP”,5004);
NetworkStream ns=tcpClient.GetStream();
如果(ns.CanWrite)
{
string text=this.xmlRequest;
byte[]sendBytes=Encoding.ASCII.GetBytes(文本);
string sendData=Encoding.ASCII.GetString(sendBytes);
ns.Write(sendBytes,0,sendBytes.Length);
}
系统线程线程睡眠(2000);
int i=0;
如果(ns.CanRead)
{
做
{
byte[]recvBytes=新字节[tcpClient.ReceiveBufferSize];
i=i+ns.Read(recvBytes,0,tcpClient.ReceiveBufferSize);
string returnData=Encoding.ASCII.GetString(recvBytes);
returnData=returnData.Substring(0,i);
this.xmlResponse=returnData;
}而(ns.DataAvailable),;
}
//有完整的数据。。。
bool status=this.ProcessXMLData();
ns.Close();
如果(状态)
{
返回true;
}
其他的
{
返回false;
}
}
捕获(SocketException se)
{
this.errorFlag=true;
this.errorMessage=se.Message;
返回false;
}
}

如果您确定正在使用的编码是ISO-8859-1,那么就不要使用
编码。ASCII
使用
编码。GetEncoding(“ISO-8859-1”)

这会有区别吗?Ascii编码通常与ISO-8859-1编码互换使用。Ascii使用7位编码。GetEncoding(“ISO-8859-1”)使用8位编码