.Net Core 讀取文件中文亂碼

首先,要知道.Net Core和.Net Framework兩個環境下不少東西是不一樣的,接下來要說的這個就是其中一個。api

 Encoding.Default,在  .NET Framework 中,Default屬性始終獲取系統的活動代碼頁,並建立對應於它的 Encoding對象。ide

而在 .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 中不支持,若想使用必須得先註冊編碼法get

下面直接貼出代碼亂碼

//註冊編碼百度

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);coding

//讀取文件數據數據

StreamReader SRFile = new StreamReader("讀取文件路徑", Encoding.GetEncoding("GB2312"));

相關文章
相關標籤/搜索