1

Windows ストア アプリで Shift JIS cp392 エンコーディングのテキスト ファイルを読み取るときに問題が発生します。このコードを使用して、テキスト ファイルを読み取ります。

var streamOpenedFile = await file.OpenAsync(FileAccessMode.Read);

using (var inputOpenedFile = streamOpenedFile.GetInputStreamAt(0))
{
    using (StreamReader reader = new StreamReader(inputOpenedFile.AsStreamForRead(), Encoding.UTF8))
    {
        fileContent = await reader.ReadToEndAsync();
    }
}

しかし、fileContent で受け取った文字列は単なる奇妙な文字であり、メモ帳で開くと文字列のようには見えません。誰でもこの問題を解決するのを手伝ってもらえますか? どうもありがとうございます。

4

1 に答える 1

4

入力ストリームを UTF-8 としてマークしたようです。つまり、入力ストリームはシフト JIS ではなく UTF-8 として解釈されます。シフト JIS として解釈したい場合は、 のエンコーディングを変更する必要がありますreader

var streamOpenedFile = await file.OpenAsync(FileAccessMode.Read);

using (var inputOpenedFile = streamOpenedFile.GetInputStreamAt(0))
{
    using (StreamReader reader =
          new StreamReader(
             inputOpenedFile.AsStreamForRead(),
             Encoding.GetEncoding(932))
    {
        fileContent = await reader.ReadToEndAsync();
    }
}
于 2013-07-23T17:24:51.377 に答える