MemoryStream ms;
...
String str = System.Text.Encoding.Default.GetString(ms.ToArray());
你也可以用别的编码,但从字节流到字符流必须有编码。

解决方案 »

  1.   

    MemoryStream m;
    ///...
    StringBuilder sb = new StringBuilder()
    StringWriter sw = new StringWriter (sb);
    m.WriteTo(sw);
    sw.Close();
    string s = sb.ToString();orstring s = System.Text.Encoding.Default.GetString(m.ToArray());
      

  2.   

    楼上的,MemoryStream里面没有WriteTo(TextWriter)方法把,好像是WriteTo(Stream)。
      

  3.   

    string s=System.Text.Encoding.Default.GetString(m.GetBuffer());
      

  4.   

    yes, you are right, I was careless
    m.Position = 0;
    StreamReader sr = new StreamReader(m);
    string s = sr.ReadToEnd();
    sr.Close();
      

  5.   

    我已经使用了GB2312编码
    String str = System.Text.Encoding.GetEncoding("GB2312").GetString(ms.ToArray());
    但里面的中文还是乱码! :(
      

  6.   

    这些字节流是怎么写到MemoryStream里的?
      

  7.   

    XslTransform xslDoc=new XslTransform();
    XmlDocument xmlDoc=new XmlDocument();
    MemoryStream msShow=new MemoryStream();
    xmlDoc.Load("a.xml");
    xslDoc.Load("a.xsl");
    xslDoc.Transform(xmlDoc,null,msShow);
    String str = System.Text.Encoding.GetEncoding("GB2312").GetString(msShow.ToArray());
      

  8.   

    XslTransform xslDoc=new XslTransform();
    XmlDocument xmlDoc=new XmlDocument();StringBuilder sb = new StringBuilder()
    StringWriter sw = new StringWriter (sb);
    XmlTextWriter xtw = new XmlTextWriter(sw,System.Text.Encoding.GetEncoding("GB2312"));xmlDoc.Load("a.xml");
    xslDoc.Load("a.xsl");
    xslDoc.Transform(xmlDoc,null,xtw);sw.Close();
    string s = sb.ToString();
      

  9.   

    你打开a.xml文件,看第一行的encoding的值是多少?
    最好用encoding='utf-8',然后代码里用Encoding.UTF8编码试试。