我想在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);
我希望有人能够解决我的问题。
答案 0 :(得分:17)
尝试使用:
StreamReader reader = new StreamReader(ms, System.Text.Encoding.UTF8, true);
第三个参数用于detectEncodingFromByteOrderMarks
(msdn)