无法读取Shift JIS cp392编码的文本文件

本文关键字:编码 文本 文件 cp392 JIS 读取 Shift | 更新日期: 2023-09-27 18:24:23

在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中收到的字符串只是一个奇怪的字符,当我用记事本打开它时,它看起来不像字符串。有人能帮我解决这个问题吗?非常感谢。

无法读取Shift JIS cp392编码的文本文件

您似乎已将输入流标记为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();
    }
}