2013-02-13 20 views
7

MemoryStreamのXMLファイル(zipアーカイブから)を開き、StreamReaderフォームを作成してGridViewに挿入します。MemoryStream UTF8エンコーディングのStreamReader

私はこのコードを使用します

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

のためであるあなたのコードはほとんど意味がありません、あなたが実際にリーダーを使用していません。 DataSet.ReadXml()には、読者を奪取するものを含む、多くのオーバーロードがあります。 –

+0

ファイルを読み込むために 'StreamReader'を使用していません。 'ds.ReadXml'呼び出しでそれを使用してください。 –

+0

固定、申し訳ありませんが私の間違いのため – flow

答えて

17

は、使用してみてください:

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

第三paramはdetectEncodingFromByteOrderMarksmsdn

+5

ありがとうが、それは動作しません:( – flow

関連する問題