1

ファイルピッカーでファイルを読み込んでいますが、エンコーディングに問題があります。正しい特殊文字が得られません。コードは次のとおりです。

 StorageFile file = await openPicker.PickSingleFileAsync();
 if (file != null)
 {
     var stream = await file.OpenReadAsync();
     var rdr  = new StreamReader(stream.AsStream());
 }

読み取りは完璧に機能しますが、エンコードは機能しません。ファイルは ansi-csv ファイルとして提供されます。StreamReader に次のようなエンコーディングを指定できます。

var rdr  = new StreamReader(stream.AsStream(),System.Text.Encoding.UTF8);

しかし、これも機能せず、System.Text.Encoding.ANSIエンコーディングが存在しません。正しいエンコーディングでファイルを読み取り、特殊文字を表示するにはどうすればよいですか?

4

1 に答える 1

3

システムの現在の ANSI エンコーディングを指定できます。

var rdr = new StreamReader(stream.AsStream(), System.Text.Encoding.Default);

それがファイルの正しいエンコーディングでない場合は、ファイルが作成されたコンピューターで使用されたエンコーディングを知り、そのエンコーディングを取得してデコードする必要があります。例えば:

var rdr = new StreamReader(stream.AsStream(), System.Text.Encoding.GetEncoding("ibm850"));
于 2013-02-12T09:53:42.923 に答える