首先,要知道.Net Core和.Net Framework兩個環境下很多東西是不同的,接下來要說的這個就是其中一個。 Encoding.Default,在 .NET Framework 中,Default屬性始終獲取系統的活動代碼頁,並創建對應於它的 Encoding對象。 而在 .NET Cor ...
首先,要知道.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"));