首先,要知道.Net Core和.Net Framework两个环境下很多东西是不同的,接下来要说的这个就是其中一个。

 Encoding.Default,在  .NET Framework 中,Default属性始终获取系统的活动代码页,并创建对应于它的 Encoding对象。

而在 .NET Core 中,Default属性始终返回UTF8Encoding。

官方文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.text.encoding.default?view=netcore-3.1#System_Text_Encoding_Default

所以关于读取文件乱码的问题,百度上有很多方案,都是在.NET Framework中有效,而在 .NET Core 中没有任何效果甚至报错。

.NET Framework 中默认编码是GB2312,而在 .NET Core 中不支持,若想使用必须得先注册编码法

下面直接贴出代码

//注册编码

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

//读取文件数据

StreamReader SRFile = new StreamReader(“读取文件路径”, Encoding.GetEncoding(“GB2312”));

 

版权声明:本文为forget-remember原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/forget-remember/p/13300327.html