码迷,mamicode.com
首页 > Web开发 > 详细

.net core中不支持GB2312编码的问题

时间:2018-12-27 18:42:35      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:VID   The   中文   程序包   defining   null   coding   实现   pre   

今天在用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();
        }

 

 
 
最后结果,读取文本信息成功。
技术分享图片
 技术分享图片

 

 
 

.net core中不支持GB2312编码的问题

标签:VID   The   中文   程序包   defining   null   coding   实现   pre   

原文地址:https://www.cnblogs.com/liuxinghen/p/10185207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!