1

我正在使用文件选择器加载文件,并且编码出现问题。我没有得到正确的特殊字符。这是代码:

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

4

1 回答 1

3

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

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

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

var rdr = new StreamReader(stream.AsStream(), System.Text.Encoding.GetEncoding("ibm850"));
于 2013-02-12T09:53:42.923 回答