.net core使用GB2312编码报错

.Net core 3.1在使用Encoding.GetEncoding("GB2312")时抛错:

Unhandled Exception: System.ArgumentException: 'GB2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.

使用Encoding.GetEncodings()查询支持的编码的格式发现没有GB2312

调查之后解决方案:

1. 引入包System.Text.Encoding.CodePages

根据 System.Text.Encoding.CodePages nuget主页 的描述,这个包能为程序提供 Windows-1252, Shift-JIS, and GB2312 三种编码。

2. 在使用GB2312编码之前,需要注册该CodePages

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

3. 现在可以使用Encoding.GetEncoding("GB2312")进行编码

猜你喜欢

转载自blog.csdn.net/Helloantoherday/article/details/113882526