首先,要知道.Net Core和.Net Framework兩個環境下很多東西是不同的,接下來要說的這個就是其中一個。
Encoding.Default,在 .NET Framework 中,Default屬性始終獲取系統的活動代碼頁,並創建對應於它的 Encoding對象。
而在 .NET Core 中,Default屬性始終返回UTF8Encoding。
所以關於讀取文件亂碼的問題,百度上有很多方案,都是在.NET Framework中有效,而在 .NET Core 中沒有任何效果甚至報錯。
.NET Framework 中默認編碼是GB2312,而在 .NET Core 中不支持,若想使用必須得先注冊編碼法
下面直接貼出代碼
//注冊編碼
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
//讀取文件數據
StreamReader SRFile = new StreamReader("讀取文件路徑", Encoding.GetEncoding("GB2312"));