读书人

获取的网络流为乱码请高手指教多谢

发布时间: 2012-02-28 13:06:36 作者: rapoo

获取的网络流为乱码,请高手指教谢谢
telnet 连接到 172.18.0.1
显示:Username:

通过编程方式连接过去却显示乱码,请高手帮帮我吧 谢谢

private void button1_Click(object sender, EventArgs e)
{
TcpClient t = new TcpClient(AddressFamily.InterNetwork);
IPAddress ip = IPAddress.Parse( "172.18.0.1 ");
t.Connect(ip, 23);
NetworkStream stream = t.GetStream();
Byte[] buffer = new Byte[32767];
Int32 bytes = stream.Read(buffer, 0, buffer.Length);
String responseData = String.Empty;
responseData = System.Text.Encoding.ASCII.GetString(buffer,0,bytes);
Text = responseData.ToString();
}

[解决办法]
System.Text.Encoding.GetEncoding( "GB2312 ").GetString(buffer,0,bytes);


*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070210

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
[解决办法]
System.Text.Encoding.GetEncoding

这个根据具体的情况 也可能是 UTF-8
[解决办法]
多试几种编码看看
responseData = System.Text.Encoding.UTF8.GetString(buffer,0,bytes);

responseData = System.Text.Encoding.Unicode.GetString(buffer,0,bytes);

[解决办法]
Encoding.GetEncoding(1252)
[解决办法]
循环遍历所有Encode,找到适合你的encode
EncodingInfo[] encodes = System.Text.Encoding.GetEncodings();
for (int i = 0; i < encodes.Length; i++)
{
Console.WriteLine(encodes[i].Name + " : " + encodes[i].GetEncoding().GetString(data));
}

读书人网 >C#

热点推荐