【问题标题】:StreamReader from MemoryStream UTF8 Encoding来自 MemoryStream UTF8 编码的 StreamReader
【发布时间】:2013-02-13 14:43:58
【问题描述】:

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

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

【问题讨论】:

  • 您的代码毫无意义,您实际上并没有使用阅读器。 DataSet.ReadXml() 有很多重载,包括需要读者阅读的重载。
  • 您没有使用StreamReader 来读取文件。在ds.ReadXml 调用中使用它。
  • 已修复,抱歉我的错误

标签: c# streamreader memorystream


【解决方案1】:

尝试使用:

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

第三个参数是detectEncodingFromByteOrderMarks (msdn)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 2011-06-08
    • 2013-02-03
    • 1970-01-01
    • 2012-05-18
    相关资源
    最近更新 更多