none
tcp传输中中文乱码的问题 RRS feed

  • 问题

  • 用于发送的方法

    public void Send(string c,ref Stream write)////////////////////////////////////////////////
            {
                try
                {
                    c += '\n';
                    byte[] a;
                    a = System.Text.Encoding.Unicode.GetBytes(c);
                    write.Flush();
                    write.Write(a, 0,256);
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
            }

    用于接收的方法

    public string Receive()/////////////////////////////////////////////////////
            {
                string a;
                a = read.ReadLine();
                return a;
            }

     

    拜托给个完整点的解决办法,小弟新手。求不吝赐教

    2011年1月4日 17:35

答案

  • 你将字符串转换成bit类型的

    接受后要逆向处理就好了。(用流读出来,然后在转换)

    你直接读出来当然有问题了。


    family as water
    2011年1月5日 1:45
  • 那一句,Write(a, 0, 256),应该是 Write(a, 0, a.Length) 吧?

    还有就是楼上说的,利用 System.Text.Encoding.Unicode.GetString(byte[]) 把读出来的 byte[] 转回去 string 就可以了。


    Mark Zhou
    2011年1月5日 8:40

全部回复

  • 你将字符串转换成bit类型的

    接受后要逆向处理就好了。(用流读出来,然后在转换)

    你直接读出来当然有问题了。


    family as water
    2011年1月5日 1:45
  • 那一句,Write(a, 0, 256),应该是 Write(a, 0, a.Length) 吧?

    还有就是楼上说的,利用 System.Text.Encoding.Unicode.GetString(byte[]) 把读出来的 byte[] 转回去 string 就可以了。


    Mark Zhou
    2011年1月5日 8:40