none
C# FTP请求时服务响应乱码 RRS feed

  • 问题

  • Oh God,

    Help!

    我用.net 2.0 提供的 ftp 组件从服务器上获取目录列表时,返回的乱码.

    分析认为可能编码问题,这应该是个通用问题。

    能否给个完整的解决方案?

     

    BR

    H.C


    Healthy
    2012年1月10日 2:44

全部回复

  • 请问您目前获取的代码是怎样的?是什么encoding的?

    可以用原先的Encoding.Getbytes获得byte型数组,再转化为需要的encoding。

    例如:

    string result="test for Encoding";
    byte[] bytes=Encoding.Unicode.GetBytes(result);
    byte[] newbytes=Encoding.Convert(Encoding.Unicode,Encoding.ASCII,bytes);
    


    详情请参阅:

    http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx

     


    Paul Zhou [MSFT]
    MSDN Community Support | Feedback to us
    2012年1月11日 9:56
  • Thanks,

    代码如下:

    using System.Net;
    using System.IO;

         System.Net.FtpWebRequest ftp = GetRequest(GetDirectory(directory));
         ftp.Method = System.Net.WebRequestMethods.Ftp.ListDirectory;

         string result = "";
         using (FtpWebResponse response = (FtpWebResponse)ftp.GetResponse())
         {
                    long size = response.ContentLength;
                    using (Stream datastream = response.GetResponseStream())
                    {
                        using (StreamReader sr = new StreamReader(datastream))
                        {
                                result = sr.ReadToEnd();
                               sr.Close();
                        }
                        datastream.Close();

                    }
         }
         response.Close();

    上面代码功能,获取FTP服务器目录列表。

    但,解析后的字符是乱码。

    因为连接的是FTP服务器,假如并不知道服务器使用的编码是何种格式,如何才能正确解析呢?

    求教

    BR


    Healthy

    • 已编辑 Healthy 2012年1月12日 2:37
    2012年1月12日 2:36