欢迎访问 如意编程网!

如意编程网

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2024/7/5 编程问答 4 豆豆
如意编程网 收集整理的这篇文章主要介绍了 .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编码的问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得如意编程网网站内容还不错,欢迎将如意编程网推荐给好友。