C# 加载编码正确的文件
我正在用文件选择器加载一个文件,但编码出现了问题。我没有合适的特殊角色。代码如下:C# 加载编码正确的文件,c#,encoding,windows-8,C#,Encoding,Windows 8,我正在用文件选择器加载一个文件,但编码出现了问题。我没有合适的特殊角色。代码如下: StorageFile file = await openPicker.PickSingleFileAsync(); if (file != null) { var stream = await file.OpenReadAsync(); var rdr = new StreamReader(stream.AsStream()); } 阅读效果很好,但编码效果不好。该文件作为ans
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"));
它是Metro Apps()thx中的文件选择器。编码。默认值在metro应用程序中不可访问,但GetEncoding是。我就是搞不清楚我必须对Microsoft CSV文件使用哪种编码。我尝试过Windows-1252和ISO-8859-1,但在这两种情况下,StreamReader都是空的。有人知道(德语)MS Excel CSV文件的正确编码吗?@JanHommes:你可以试试IBM852(中欧DOS)或Windows-1250中欧Windows)。对我来说编码很好。GetEncoding(“Windows-1250”)成功了,谢谢大家!