web-dev-qa-db-ja.com

MemoryStreamUTF8エンコーディングからのStreamReader

MemoryStreamで(Zipアーカイブから)XMLファイルを開き、このストリームから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);

誰かが私の問題を解決するアイデアを持ってくれることを願っています。

9
flow

使用してみてください:

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

3番目のパラメーターはdetectEncodingFromByteOrderMarksmsdn )用です

18
Yaakov Ellis