System.Text.Encoding GB2312 = System.Text.Encoding.GetEncoding("GB2312");
                System.Text.Encoding UTF8 = System.Text.Encoding.UTF8;
                string ss = GB2312.GetString(System.Text.Encoding.Convert(GB2312,UTF8,m_byBuff));
                StreamWriter strW = new StreamWriter("D:\\a.txt");
                strW.WriteLine(ss);
                strW.Close();文本中结果如下:
2009-07-17  21:53        11,171,169 涓囪兘鎽勫儚澶撮┍鍔?rar
2007-05-27  10:50         3,840,584 褰辫鍓垏宸ュ叿.rar
2009-11-23  12:37           227,036 鎼滅嫍杈撳叆娉曠毊鑲?1).ssf
2009-11-23  12:34           137,105 鎼滅嫍杈撳叆娉曠毊鑲?ssf
2007-12-02  09:43           778,495 鏂囦欢鎭㈠.rar
2009-10-27  15:01    <DIR>          鏉€姣?
2009-08-31  23:27    <DIR>          鏋佸搧椋炶溅12
2009-06-03  20:21           371,230 娣卞害IIS琛ヤ竵_vrxz.rar
2009-11-26  09:53    <DIR>          鐢佃剳杈呭姪宸ュ叿这是哪里出错了呀,m_byBuff是从receiveSocket接到的数据

解决方案 »

  1.   

    在StreamReader的时候使用Big5码进行读取:
    StreamReader resStream = new StreamReader(response.GetResponseStream(),Encoding.GetEncoding("big5"));
    构造函数中的第二个参数就是指定的字符集了!
      

  2.   

    先读取到正确的字符之后,再使用默认的Code进行Write
      

  3.   

    数据m_byBuff是socket传过来的,不是读取的
      

  4.   

    那个数据是从telnet传过来的,比如cmd下输入dir,会自动列出一些信息,列出的信息中汉字、英文的都有,m_byBuff中存的就是这些数据
      

  5.   

    Socket 传过来之前,传的那一方是怎么编码的你就用同样的编码方式还原。。如果以上不知道,就用最勺的办法,一个一个编码试,也就10个左右,直到正确为止
      

  6.   

    远端传来的,你应该和对方约定好编码~
    不然你只能先把拿到的byte直接存到个文件里,然后打开看是什么编码
      

  7.   

    我改了一下,结果中文全变为问号了2009-07-17  21:53        11,171,169 ?????????????.rar
    2007-05-27  10:50         3,840,584 ?????????.rar
    2009-11-23  12:37           227,036 ??????????(1).ssf
    2009-11-23  12:34           137,105 ??????????.ssf
    2007-12-02  09:43           778,495 ??????.rar
    2009-10-27  15:01    <DIR>          ???
    2009-08-31  23:27    <DIR>          ??????12
    2009-06-03  20:21           371,230 ???IIS????_vrxz.rar