加载编码正确的文件

本文关键字:文件 编码 加载 | 更新日期: 2023-09-27 17:58:43

我正在用文件选择器加载一个文件,但编码出现了问题。我没有正确的特殊字符。这是代码:

 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编码也不存在。如何使用正确的编码读取文件并显示我的特殊字符?

加载编码正确的文件

您可以指定系统的当前ANSI编码:

var rdr = new StreamReader(stream.AsStream(), System.Text.Encoding.Default);

如果这不是文件的正确编码,那么你需要知道在创建文件的计算机上使用了哪种编码,并获得该编码进行解码。例如:

var rdr = new StreamReader(stream.AsStream(), System.Text.Encoding.GetEncoding("ibm850"));