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