.Net Core 讀取文件中文亂碼


首先,要知道.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"));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM