我正在加载带有filepicker的文件,编码出错了。我没有得到正确的特殊字符。这是代码:
StorageFile file = await openPicker.PickSingleFileAsync();
if (file != null)
{
var stream = await file.OpenReadAsync();
var rdr = new StreamReader(stream.AsStream());
}
阅读效果很好,但编码没有。该文件作为ansi-csv文件提供。我可以给StreamReader一个这样的编码:
var rdr = new StreamReader(stream.AsStream(),System.Text.Encoding.UTF8);
但这也不起作用,并且不存在System.Text.Encoding.ANSI
编码。如何使用正确的编码读取文件并显示我的特殊字符?
答案 0 :(得分:3)
您可以为系统指定当前的ANSI编码:
var rdr = new StreamReader(stream.AsStream(), System.Text.Encoding.Default);
如果这不是文件的正确编码,那么您需要知道在创建文件的计算机上使用了哪种编码,并获取该编码以对其进行解码。例如:
var rdr = new StreamReader(stream.AsStream(), System.Text.Encoding.GetEncoding("ibm850"));