10

我想在 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);

我希望有人有一个想法来解决我的问题。

4

1 回答 1

19

尝试使用:

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

第三个参数是 for detectEncodingFromByteOrderMarks( msdn )

于 2013-02-13T14:47:41.357 回答