在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中收到的字符串只是一个奇怪的字符,当我用记事本打开它时,它看起来不像字符串。有人能帮我解决这个问题吗?非常感谢。
您似乎已将输入流标记为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();
}
}