1

在 Windows Store 应用程序中以 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,这意味着输入流将被解释为 UTF-8 而不是 Shift JIS。如果您希望将其解释为 Shift 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 回答