.net core中不支持GB2312编码的问题
生活随笔
收集整理的這篇文章主要介紹了
.net core中不支持GB2312编码的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天在用core實現讀取文件內容時出現了中文亂碼的問題,特此記錄下。 代碼如下: static void Main(string[] args){string path = "F:\\1.txt";StreamReader sr = new StreamReader(path, Encoding.Default);String line;while ((line = sr.ReadLine()) != null){Console.WriteLine(line.ToString());}sr.Close();Console.ReadLine();}
?
txt文件信息如下:?
執行后讀取的信息中文亂碼:?
那么默認編碼改為“GB2312”編碼試試: static void Main(string[] args){string path = "F:\\1.txt";StreamReader sr = new StreamReader(path, Encoding.GetEncoding("GB2312"));String line;while ((line = sr.ReadLine()) != null){Console.WriteLine(line.ToString());}sr.Close();Console.ReadLine();}?
執行出現異常: 'GB2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. “GB2312”不支持編碼名稱。有關定義自定義編碼的信息,請參閱編碼文檔。RegisterProvider方法。 解決辦法: 1、下載安裝System.Text.Encoding.CodePages。 步驟: 右鍵“依賴項”,點擊“管理NuGet程序包”?
在“瀏覽”搜索System.Text.Encoding.CodePages,選擇第一個下載安裝。?
2、 使用“Encoding.RegisterProvider”方法進行注冊。 static void Main(string[] args){Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);string path = "F:\\1.txt";StreamReader sr = new StreamReader(path, Encoding.GetEncoding("GB2312"));String line;while ((line = sr.ReadLine()) != null){Console.WriteLine(line.ToString());}sr.Close();Console.ReadLine();}?
最后結果,讀取文本信息成功。?
轉載于:https://www.cnblogs.com/liuxinghen/p/10185207.html
總結
以上是生活随笔為你收集整理的.net core中不支持GB2312编码的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一章 Linux是什么
- 下一篇: CF1129D Isolation(分块