如何在c#中编码tcpclient流?

如何在c#中编码tcpclient流?,c#,encoding,tcpclient,pop3,C#,Encoding,Tcpclient,Pop3,我的pop3客户端有问题。 我无法用utf-8或iso 8859-1编码我从tcpclient流检索的电子邮件。 代码如下: TcpClient tcpClient = new TcpClient(); txtLog.Text = "Dico:\r\nConnect me to " + txtServer.Text + ":" + txtPort.Text + "\r\n\r\n"; tcpClient.Connect(txtServer.Text, Convert.ToInt32(txtPor

我的pop3客户端有问题。 我无法用utf-8或iso 8859-1编码我从tcpclient流检索的电子邮件。 代码如下:

TcpClient tcpClient = new TcpClient();
txtLog.Text = "Dico:\r\nConnect me to " + txtServer.Text + ":" + txtPort.Text + "\r\n\r\n";
tcpClient.Connect(txtServer.Text, Convert.ToInt32(txtPort.Text));
NetworkStream netStream = tcpClient.GetStream();
System.Text.Encoding iso_8859_1 = System.Text.Encoding.GetEncoding("iso-8859-1");
System.IO.StreamReader strReader = new System.IO.StreamReader(netStream, iso_8859_1);

System.Text.Encoding utf_8 = System.Text.Encoding.UTF8;


if (tcpClient.Connected)
{
    txtLog.Text = "Il server risponde:\r\n" + strReader.ReadLine() + "\r\n\r\n";
    byte[] WriteBuffer = new byte[100990024];
    ASCIIEncoding enc = new System.Text.ASCIIEncoding();

    WriteBuffer = enc.GetBytes("USER " + txtUser.Text + "\r\n");
    txtLog.Text = "Dico:\r\nHere's the username: " + txtUser.Text + "\r\n\r\n";
    netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
    txtLog.Text = "Il server risponde\r\n" + strReader.ReadLine() + "\r\n\r\n";
    WriteBuffer = enc.GetBytes("PASS " + txtPass.Text + "\r\n");
    txtLog.Text = "Dico:\r\nHere's the password: " + txtPass.Text + "\r\n\r\n";
    netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
    txtLog.Text = "Il server risponde\r\n" + strReader.ReadLine() + "\r\n\r\n";

    WriteBuffer = enc.GetBytes("RETR " + messaggio.Text + "\r\n");
    txtLog.Text = "Messaggio: " + messaggio.Text + "\r\n\r\n";
    string message;
    netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
    while (true)
    {
        message = strReader.ReadLine();
        if (message == ".")
        {
            if (message == "/n") break;
            break;
        }
        else
        {
            txtLog.Text += message + "\r\n\r\n";
            continue;
        }
    }
我总是得到这样的东西“questa=E8\u una\u prova\uf2\uuec?=”。 发生了什么?
谢谢。

您看到的是传输编码,它用于传输文本编码产生的字节

虽然文本可以使用UTF-8或任何其他字符集进行编码,但传输编码通常是
base 64
引用的可打印
。字符串
“questa\u8\u una\u prova\uf2\uec\uu=”
看起来像后者

看看如何将引用的printable解码为字符串,看看.NET中已有的POP3客户端实现