来自MemoryStream UTF8编码的StreamReader

时间:2013-02-13 14:43:59

标签: c# streamreader memorystream

我想在MemoryStream中打开一个XML文件(来自zip存档),并在此流中创建一个StreamReader,将其放入GridView中。

我使用此代码:

MemoryStream ms = new MemoryStream();
entry.Extract(ms);
StreamReader reader = new StreamReader(ms);
DataSet ds = new DataSet();
ds.ReadXml(reader);
dataGridView1.DataSource = GlobalDs.Tables[0];

如果我的XML文件是用ANSI编码的,那么它可以很好地工作。 但是当我加载以UTF8编码的文件时,它会失败,即使我像这样初始化StreamReader

StreamReader reader = new StreamReader(ms, System.Text.Encoding.UTF8);

我希望有人能够解决我的问题。

1 个答案:

答案 0 :(得分:17)

尝试使用:

StreamReader reader = new StreamReader(ms, System.Text.Encoding.UTF8, true);

第三个参数用于detectEncodingFromByteOrderMarksmsdn